我有几个git分支,它们之间提交樱桃。提案有时会被压制。
为了决定是否将提交abcdef
应用于live
分支,我想知道是否已将等效提交应用于preprod
分支。
如果preprod
从未压缩过提交,我会使用补丁ID,如in this question所述。由于preprod
可以压缩提交序列,因此我想查看abcdef
上的preprod
是否为空提交。
$ git checkout preprod
$ git cherry-pick abcdef
On branch preprod
Your branch is up-to-date with 'origin/preprod'.
You are currently cherry-picking commit abcdef.
The previous cherry-pick is now empty, possibly due to conflict resolution.
If you wish to commit it anyway, use:
git commit --allow-empty
Otherwise, please use 'git reset'
如何以编程方式检测挑选提交是否会导致空提交?
(我知道这是一个不完美的启发式方法,用于检测补丁是否已应用,但对我的用例来说已经足够了。)
答案 0 :(得分:4)
看看git cherry
:
查找尚未应用于上游的提交
这样的事情应该通过显示提交abcdef
来实现这个技巧,如果需要樱桃选择,其他什么都没有(没有检查):
git cherry abcdef preprod abcdef^