27

我有两个分支,masterliveMaster是开发分支,包含尚未准备好进入live的提交。

  • 如果在需要进入 live分支的master分支中进行了更改,那么它们将从master中挑选出来live
  • 有时对实时分支进行提交,然后将它们挑选到master或合并到master

我想要做的是查看所有在master中而不是在live中的提交,我在这里和谷歌上进行了很好的搜索,我正在使用这个:

git log --cherry-pick --no-merges --oneline master...live

这一直有效,直到我将live合并到master。但现在它列出了两者中的几个提交。

那么查看分支中而不是实时分支中的所有提交的正确命令是什么?

4

3 回答 3

27

你很亲密。正确的命令是:

git log --cherry-pick --oneline --no-merges --left-only master...live

从日志手册页:

--left-only, --right-only

List 仅在对称范围的相应侧提交,即仅那些将被标记为 < resp 的提交。> 通过--left-right。

例如, --cherry-pick --right-only A...B 会忽略那些来自 B 的提交,这些提交在 A 中或与 A 中的提交等效。换句话说,这列出了来自 git cherry 的 + 提交A B. 更准确地说, --cherry-pick --right-only --no-merges 给出了确切的列表。

于 2012-12-19T17:44:39.350 回答
4

git log master ^live --no-merges

于 2012-12-13T10:53:50.740 回答
2

我最终使用结合 git patch-id 和 git log 的简短 python 脚本解决了我自己的问题,该脚本可以在这里找到https://gist.github.com/4565584

于 2013-01-18T16:08:40.713 回答