比较两个分支的提示提交git diff branch_1..branch_2
,
输出是否区分添加到branch2中的部分和从branch1中删除的部分?
输出是否区分了从branch2中删除的部分和添加到branch1中的部分?
如果没有,是否有某种方法可以区分?
感谢。
答案 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
)。