`git diff`是否区分添加到branch2中的部分和从branch1中删除的部分?

时间:2017-06-08 18:42:14

标签: git

比较两个分支的提示提交git diff branch_1..branch_2

  • 输出是否区分添加到branch2中的部分和从branch1中删除的部分?

  • 输出是否区分了从branch2中删除的部分和添加到branch1中的部分?

如果没有,是否有某种方法可以区分?

感谢。

1 个答案:

答案 0 :(得分:4)

从"中删除"的确没有任何概念。或者"添加到"在这个级别(与git merge不同)。 Git只是比较两个提交'文件直接。

鉴于git diff branch_1..branch_2,Git首先只需删除 ..,然后留下git diff branch_1 branch_2。 (这与几乎所有其他Git命令不同:..git diff的特殊处理对git diff是唯一的。)现在只有两个分支名称或其他提交说明符,Git将它们转换为树形哈希ID,就像使用:

一样
git rev-parse branch_1^{tree}

git rev-parse branch_2^{tree}

到目前为止,所有的概念都是"分支"完全消失了:所有Git都有,而且需要的是两棵树。然后它比较两棵树,查找具有相同名称和/或内容的文件(取决于-M-B等标志),然后对每个文件对进行个性化差异(除非& #39;被抑制,例如,--name-only--name-status)。