如何在两个分支之间进行更改以及进行更改的提交ID

时间:2018-03-07 03:53:52

标签: git github branch git-branch

我有两个分支(例如test和master)。我已经对每个分支做了一些提交,现在我想看到在测试分支中但不在master分支中的新提交。

目前我正在使用git log master..test来查看测试中的提交但不是主控中的提交。它在大多数情况下运行良好,但是,它带来了一个问题。如果我已经从测试分支到主分支进行了一些提交,由于它们的提交ID不同,git log仍将显示已被挑选的提交,即使两个分支之间实际上没有差异

我现在正在考虑使用git diff master..test,这个方法会比较两个分支的内容并给我“准确”的更改(它不会显示已被挑选的提交)。但是,这无法提供我想要的提交ID。

所以我想知道是否有任何方法,可能是一些标签,可以显示两个分支之间的实际差异,同时显示哪个提交产生了这些差异?

更新:由于我使用程序来实现这一点,我不能先看看差异,然后转到git blame以匹配内容并查看哪个提交负责。要做到这一点,我需要使用类似grep的东西,如果文本内容多次出现,可能会多次匹配内容。所以我正在寻找从diff到提交ID的直接链接

1 个答案:

答案 0 :(得分:0)

请使用git diff三点符号,即git diff [--options] <commit>...<commit>

联构帮助页面的报价:

  

git diff [--options] <commit>...<commit> [--] [<path>...]

     

此表单用于查看包含和最多为第二个的分支上的更改,从两者的共同祖先开始。 “git diff A ... B”相当于“git diff $(git-merge-base A B)B”。你可以省略              任何一个,与使用HEAD具有相同的效果。