【发布时间】:2018-03-07 03:53:51
【问题描述】:
我有两个分支(例如 test 和 master)。我已经对每个分支进行了一些提交,现在我想在测试分支中看到新的提交,而不是在主分支中。
目前我正在使用git log master..test 来查看在测试中而不是在 master 中的提交。它在大多数情况下运行良好,但是,它带来了一个问题。如果我已经从测试分支挑选了一些提交到主分支,由于它们的提交 ID 不同,git log 仍将显示已挑选的提交,即使两个分支之间实际上没有区别。
我现在正在考虑使用git diff master..test,此方法将比较两个分支的内容并给我“准确”的更改(它不会显示已被精心挑选的提交)。但是,这并没有给我想要的提交 ID。
所以我想知道是否有任何方法,也许是一些标签,可以显示两个分支之间的实际差异,同时显示哪个提交造成了这些差异?
UPDATE:由于我是用程序来实现的,所以不能先看区别,然后去git blame匹配内容,看看哪个commit负责。为此,我需要使用 grep 之类的东西,如果文本内容出现多次,它可能会多次匹配内容。所以我正在寻找一些从 diff 到提交 ID 的直接链接
【问题讨论】:
-
看看
git cherry。要了解git cherry的实际工作原理,请查看gitrevisions 的对称差分部分,然后查看git log的--cherry-*选项。另请注意,仅git diff(好吧,忽略“组合差异”,这不是您想要的)比较两个特定的提交:git diff A..B不查看git log --ancestry-path --boundary A..B中的提交,它看起来仅限A,然后仅限B。
标签: git github branch git-branch