为什么`git cherry-pick --allow-empty`没有效果?

时间:2018-05-26 07:55:44

标签: git

如果我挑选一个不做任何更改的提交,但我希望它仍然提交(以便提交的审计跟踪与另一个项目一致),我收到消息:

$ git cherry-pick 696abcb
     

无需提交,工作目录清理   之前的樱桃选择现在是空的,可能是由于解决冲突。   如果您仍想提交,请使用:

git commit --allow-empty

根据手册页,我可以使用--allow-empty的樱桃挑选。但这会产生相同的信息:

$ git cherry-pick --allow-empty 696abcb

(与上述相同的信息)

这是一个错误吗?我完全误解了这个选项的意思吗?

2 个答案:

答案 0 :(得分:2)

由于没有什么可以挑选的,所以没有任何工作可以完成。您可以做的唯一可能是创建一个空的提交 指示您运行git cherry-pick --allow-empty,而不是指示您运行:

git commit --allow-empty

请注意 commit 命令。默认情况下,git不会创建没有更改的提交。

(git质疑创建空提交的价值,只是为了在历史记录中包含提交消息 - 坦白说 - 但是如果你需要它来进行审核,那么就是这样做的方法。)

答案 1 :(得分:1)

使用Git 2.22(2019年第二季度),您无需运行git commit --allow-empty
在将控制权交还给用户以寻求解决冲突步骤的帮助后,“ git cherry-pick --options A..B”没有兑现最初收到的选项,该选项已得到纠正。

请参见commit 6860ce5commit 36b0503commit f59199dPhillip Wood (phillipwood)(2019年3月13日)。
(由Junio C Hamano -- gitster --commit d2dba18中合并,2019年4月25日)

  

cherry-pick --continue:记住选项

     

在为解决冲突而停止采摘时,请记住--allow-empty--allow-empty-message--keep-redundant-commits