中止一个git樱桃挑选?

agm*_*min 350 git git-cherry-pick

我跑了git cherry-pick <hash>并且发生了合并冲突.我不想解决冲突,我只是想中止樱桃挑选.在进行实际合并时(有git merge),这是方便的git merge --abort.樱桃采摘相当于什么?

小智 532

您可以执行以下操作

git cherry-pick --abort
Run Code Online (Sandbox Code Playgroud)

来自git cherry-pick文档

--abort  
Run Code Online (Sandbox Code Playgroud)

取消操作并返回到预序列状态.

  • 是否已在特定的git版本中删除/添加了--abort选项?我正在运行git 1.7.4.1和"git cherry-pick --abort"会产生一个git cherry-pick用法消息.我也为"堕胎"gre"git help cherry-pick"而没有找到任何东西. (6认同)
  • 是的,这不起作用.大多数时候我得到这个错误:条目'<unstaged file>'不是uptodate.无法合并.另一方面,`git reset --merge`确实有效! (4认同)
  • @danns87 `--abort` 选项在 [version 1.7.8](https://github.com/git/git/blob/v1.8.4.2/Documentation/RelNotes/1.7.8.txt#L31 -32)。你可以升级吗? (2认同)

agm*_*min 69

我发现答案是git reset --merge- 它清除了冲突的樱桃挑选尝试.

  • 和`git reset --hard`有什么不同吗?我正在使用rebase工作流程,如果有的话.这似乎对我有用. (4认同)
  • --merge和--abort之间有什么区别? (2认同)

小智 9

对我来说,重置失败的Cherry-Pick-attempt的唯一方法是

git reset --hard HEAD
Run Code Online (Sandbox Code Playgroud)

  • 这并不能回答问题,仅表明可能会破坏数据的操作。 (3认同)

BJY*_*JYC 5

也可以尝试使用 '--quit' 选项,它允许您中止当前操作并进一步清除序列器状态。

--quit 忘记当前正在进行的操作。可用于在樱桃挑选或恢复失败后清除音序器状态。

--abort 取消操作并返回前序状态。

使用帮助查看包含更多详细信息的原始文档,$ git help cherry-pick

我会避免 'git reset --hard HEAD' 太苛刻,你可能最终会做一些手工工作。