git cherry和git log --cherry命令的区别

3

git cherry develop feature/ABC - 1014d04c60efccb5d0b8762af1371831bb234b17

这个命令可以正确地显示提交1014d04(用-标记)在rebase到develop分支时可以从feature分支中删除,因为它已经被cherry-pick到develop分支了。

然而,git log cherry命令似乎不起作用(用+标记)

git log --cherry --oneline develop..feature/ABC + 1014d04 添加一些注释

git log --cherry-mark --oneline develop..feature/ABC + 1014d04 添加一些注释

我使用的是

git --version git version 2.12.0.windows.1

1个回答

3
--cherry-mark--cherry选项有效地要求您进行对称差异。这从--cherry的描述中更清晰地表达出来:

--cherry--right-only --cherry-mark --no-merges的同义词; 用于将输出限制为我们一侧的提交,并使用git log --cherry upstream...mybranch标记已应用于分叉历史的另一侧的提交,类似于git cherry upstream mybranch

请注意这里的三个点,它们调用了对称差异代码。这需要获取位于任一分支上但不在两个分支上的提交,即排除它们的合并基础和任何祖先提交。因此,所选的提交必须仅从左侧ID(在本例中为upstream)或右侧ID(mybranch)可到达。 --left-right选项会将每个提交标记为哪个“腿”到达它,而--right-only会丢弃所选的左侧提交,但只有在等效提交被标记后才会这样做。
(确实可以使用--cherry-mark而不使用--left-only--right-only,但我认为它没有那么有用:您无法告诉提交来自哪一侧。将--cherry-mark--left-right混合使用会用左/右标记替换樱桃标记(!)。)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接