我试图获得相同的运行效果,git branch --merged
但允许在某些时候重新设置相同的提交(提交消息+差异)。
问问题
418 次
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 回答