如何检测是否已应用git补丁?

时间:2017-12-08 17:25:04

标签: git

我有几个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'

如何以编程方式检测挑选提交是否会导致空提交?

(我知道这是一个不完美的启发式方法,用于检测补丁是否已应用,但对我的用例来说已经足够了。)

1 个答案:

答案 0 :(得分:4)

看看git cherry

  

查找尚未应用于上游的提交

这样的事情应该通过显示提交abcdef来实现这个技巧,如果需要樱桃选择,其他什么都没有(没有检查):

git cherry abcdef preprod abcdef^