我有两个分支,主和直播。 Master 是开发 分支并包含尚未准备好进入 live 的提交。
我希望能够查看 master 中的所有提交,而不是 live 中的提交,我在这里进行了很好的搜索谷歌和我正在使用它:
git log --cherry-pick --no-merges --oneline master...live
这一直有效,直到我将 live 合并到 master 中。但现在它列出了两个提交。
那么查看主分支中的所有提交而不是 live 分支中的所有提交的正确命令是什么?
答案 0 :(得分:25)
你非常接近。正确的命令是:
git log --cherry-pick --oneline --no-merges --left-only master...live
来自日志管理页面:
--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给出了 确切的清单。
答案 1 :(得分:4)
git log master ^live --no-merges
答案 2 :(得分:2)
我最后使用结合了git patch-id和git log的简短python脚本解决了我自己的问题,脚本可以在这里找到https://gist.github.com/4565584