如何缔结一个Git摘樱桃?(How to Conclude a Git Cherry-Pick?)

2019-06-28 07:29发布

昨天,我的樱桃采摘两次提交到我的主要分支,其中一人造成合并冲突和我解决了他们,忠诚的,他们推到原点。 今天,我试图从我得到以下错误的服务器中拉出:

$ git pull
fatal: You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists).
Please, commit your changes before you can merge.
$

Git的状态显示为:

$ git status
# On branch main
# Your branch is behind 'origin/main' by 2 commits, and can be fast-forwarded.
#
$

我曾尝试以下无济于事:

$ git cherry-pick --continue
usage: git cherry-pick [options] <commit-ish>
$

我如何能解决这个任何想法? 提前致谢!

Answer 1:

下一次尝试git cherry-pick --abort ,你做了什么,否则应该或多或少的工作。



Answer 2:

以解决以下几点: rm .git/CHERRY_PICK_HEAD我意识到这是危险的,因为这并不能保证git的内内在一致性,但对我来说没有任何问题至今...



Answer 3:

如果git cherry-pick --continue不工作,这意味着Git是太旧:该选项中引入了git的1.7.8(2011年12月)在提交5a5d80f

它的工作原理通过丢弃从git的/定序器/ TODO所述第一指令并执行那里列出的其余樱桃纬,与选项(认为“ -s ”和“ -X从‘中列出的初始命令’) .git/sequencer/opts ”。

这些天来(2014),这将是当你看到使用命令“ You have not concluded your cherry-pick ”。



Answer 4:

因为我以前的从2014年起的答案 ,正确的命令现在(2018)是git cherry-pick --quit
和Git 2.19之前(Q3 2018),“ git cherry-pick --quit ”无法删除CHERRY_PICK_HEAD尽管我们不会在摘樱桃会议返回后,这已得到纠正。

见提交3e7dd99通过(2018年8月16日) 阮玉维战泰( pclouds ) 。
(通过合并JUNIOÇ滨野- gitster -印刷提交39e415c 8月20日2018)

摘樱桃:修复--quit不删除CHERRY_PICK_HEAD

--quit是应该--abort但没有恢复HEAD
离开CHERRY_PICK_HEAD背后可能使其他命令误认为cherry-pick仍在进行中(例如,“ git commit --amend ”将拒绝工作)。 清洁它。

对于--abort ,删除这份工作CHERRY_PICK_HEAD是“ git reset ”,所以我们不需要做任何事情。 但是,让我们添加额外的检查中--abort测试,以确认。



文章来源: How to Conclude a Git Cherry-Pick?