git cherry和git log --cherry命令之间的差异

时间:2017-03-21 15:54:43

标签: git git-for-windows

git cherry develop feature/ABC - 1014d04c60efccb5d0b8762af1371831bb234b17

git cherry命令正确显示在针对develop的rebase期间,可以从功能分支中删除提交1014d04(标有-)。因为它已被挑选开发。​​

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

git log --cherry --oneline develop..feature/ABC + 1014d04 adding some comment

git log --cherry-mark --oneline develop..feature/ABC + 1014d04 adding some comment

git --version git version 2.12.0.windows.1

1 个答案:

答案 0 :(得分:1)

--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选项会标记每个提交到哪个“leg”到达它,而--right-only会丢弃所选的左侧提交,但只有等效提交后才会被标记。< / p>

可以在没有--cherry-mark--left-only的情况下使用--right-only,但我认为它不是那么有用:你无法分辨提交的哪一方混合--cherry-mark--left-right将樱桃标记替换为左/右标记(!)。)