为了找到分支working
上未 merge/选择到master
但我正在运行的提交
git log --format="%h %aN %ai %f" --cherry-pick --no-merges master..working
据了解here .
但正如所描述的here我发现 master
和 working
上的提交仅因挑选而导致提交 ID 发生变化。
working
均未 merge 到 master
,反之亦然。
即使我手动挑选从 working
到 master
的提交,它也会显示正在运行上述命令。
实际上--cherry-pick
似乎根本没有效果,如|wc
所示。
我做错了什么?
更新:
实际上 ElpieKay 和 torek 都是对的,我最初的命令也会起作用。不幸的是,我不知道我们正在使用一些“cherry-pickish”魔法,我不知道在cherry-picking之后哪些更改会提交
.
最佳答案
如ElpieKay mentioned in a comment ,您需要三点表示法。但是,仅添加三点表示法是不够的:您还需要添加 --left-only
或 --right-only
(取决于哪一侧)您将 A...B
的 A
和 B
部分放在上的对称差异)。
注意:
In order to find commits on branch
working
not merged/picked tomaster
yet [I used]master..working
所以在这里,您需要--right-only master...working
。您也可以保留 --no-merges
。如果 merge 仅出现在 master
上,您实际上不需要 --no-merges
,但它可能是无害的。但请注意,--no-merges
完全消除了所有 merge ,无论其补丁 ID 为何。
关于git log --cherry-pick A..B - 我做错了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65319896/