我有两个分支(例如test和master)。我已经对每个分支做了一些提交,现在我想看到在测试分支中但不在master分支中的新提交。
目前我正在使用git log master..test
来查看测试中的提交但不是主控中的提交。它在大多数情况下运行良好,但是,它带来了一个问题。如果我已经从测试分支到主分支进行了一些提交,由于它们的提交ID不同,git log
仍将显示已被挑选的提交,即使两个分支之间实际上没有差异
我现在正在考虑使用git diff master..test
,这个方法会比较两个分支的内容并给我“准确”的更改(它不会显示已被挑选的提交)。但是,这无法提供我想要的提交ID。
所以我想知道是否有任何方法,可能是一些标签,可以显示两个分支之间的实际差异,同时显示哪个提交产生了这些差异?
更新:由于我使用程序来实现这一点,我不能先看看差异,然后转到git blame
以匹配内容并查看哪个提交负责。要做到这一点,我需要使用类似grep的东西,如果文本内容多次出现,可能会多次匹配内容。所以我正在寻找从diff到提交ID的直接链接
答案 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具有相同的效果。