如何使用git找到一个分支中但不在另一个分支中的所有提交?

Rwk*_*wky 26 git

我有两个分支,主人现场.法师是开发分支,并且包含还没有准备好进入提交现场.

  • 如果一个变化是在由分支,需要进入 现场分支,然后他们从樱桃采摘高手.
  • 有时会对实时分支进行提交,然后将其提取到主服务器中或者合并到主服务器中.

我希望能够做的就是查看所有都在提交主人比不在现场,我已经在这里和谷歌,我就是用这个一个很好的搜索:

git log --cherry-pick --no-merges --oneline master...live
Run Code Online (Sandbox Code Playgroud)

这个工作,直到我合并.但现在它列出了两个提交.

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

Chr*_*ial 26

你很近.正确的命令是:

git log --cherry-pick --oneline --no-merges --left-only master...live
Run Code Online (Sandbox Code Playgroud)

从日志手册页:

--left-only, --right-only

列表仅在对称范围的相应侧提交,即仅标记为<resp.> by --left-right.

例如,--cherry-pick -right-only A ... B省略那些来自B的提交,这些提交在A中或者是补丁相当于A中的提交.换句话说,这列出了来自git cherry的+提交A B.更确切地说,--cherry-pick --right-only --no-merges给出了确切的列表.


Rwk*_*wky 2

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