4

我试图获得相同的运行效果,git branch --merged但允许在某些时候重新设置相同的提交(提交消息+差异)。

4

1 回答 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 回答