Git - 在旧提交中比较分支的差异

4

我有这个:

branch: commit 1, commit 2, 3,4
master: commit 1, commit 2, 3,4,5,6,7

如何在历史上某个节点(即提交2)之后,比较分支和提交3的主分支之间的差异?


1
phd的回答是正确的(并且已经得到了赞同),但需要注意的是,诀窍在于意识到Git中的“分支”实际上意义不大。Git的全部内容都围绕着提交展开;分支名称只是一种标识特定提交的方式,具有额外的功能,即每次向分支添加提交时,名称到提交ID的映射自动移动,以便名称转换为最新的提交。因此,分支实际上不是名称,而是从名称找到的一组提交。 - torek
3个回答

6

我们把你的提交命名为 b1、b2、b3、b4;m1、m2、m3、m4、m5、m6、m7。要比较两个提交,你可以运行 git diff commit1 commit2。在你的情况下是 git diff b2 m3


1
您可以随时使用以下命令检查提交之间的差异:
git diff commit1..commit2

你可以用分支名称替换提交(commit)。
git diff master..foo

或者也可以使用HEAD。
git diff master..HEAD

等等。

这里有一个真实的例子:

git diff e8e1956c174da9d..90f2b3ee988d8b6

请注意,完整的哈希值并非必需。

1
详细的回答如下:
首先检出分支: git checkout 分支名
然后运行: git log
获取您想要的提交的SHA / commit-id并复制它。 (我称其为SHA1)
然后返回主分支: git checkout master 然后运行: git log
获取您想要的提交的SHA / commit-id并复制它。 (我称其为SHA2)
然后在保持在主分支的情况下,可以运行: git diff SHA1 SHA2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接