我试图获得相同的运行效果,git branch --merged但允许在某些时候重新设置相同的提交(提交消息+差异)。
1 回答
3
git log与该--cherry-mark选项一起使用将起作用。具体来说,您可以看到一组在分支A和分支之间相同的提交,B如下所示:
git log --cherry-mark --oneline --graph --decorate A...B
示例输出:
$ git log --cherry-mark --oneline --graph --decorate master...feature
= 1e4f971 (HEAD, feature) Add some greetings
= 926857a Add some greetings
= bfede5b Add some greetings
= 14099b6 (master) Add some Hellos
= a0576fa Add some Hellos
= 8822553 Add some Hellos
在上面的输出中,您将看到 for 输出中feature的前 3 个提交等同于for 输出中的前 3 个提交master,尽管 sha ID 和提交消息不同。
来自官方 Linux Kernel Git 文档git log:
--cherry-mark类似
--cherry-pick(见下文),但=用+.--cherry-pick当提交集受到对称差异的限制时,省略任何引入与“另一侧”的另一个提交相同的更改的提交。
例如,如果您有两个分支,A 和 B,则仅列出其中一侧的所有提交的常用方法是 with
--left-right(请参阅下面选项描述中的示例--left-right)。然而,它显示了从另一个分支中挑选出来的提交(例如,“b 上的第 3 个”可能是从分支 A 中挑选出来的)。使用此选项,此类提交对将从输出中排除。
您还可以在免费在线 Pro Git 书籍的修订选择章节中了解有关三点...提交范围语法的更多信息。
于 2013-08-20T01:28:26.887 回答