Stu*_*ner 43 git version-control cherry-pick git-cherry-pick
昨天我挑选了两个提交到我的主分支,其中一个引起了合并冲突,我解决了它们,承诺并将它们推向原点.今天我收到以下错误时试图从服务器拉出来:
$ git pull
fatal: You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists).
Please, commit your changes before you can merge.
$
Run Code Online (Sandbox Code Playgroud)
Git状态如下:
$ git status
# On branch main
# Your branch is behind 'origin/main' by 2 commits, and can be fast-forwarded.
#
$
Run Code Online (Sandbox Code Playgroud)
我试过以下无济于事:
$ git cherry-pick --continue
usage: git cherry-pick [options] <commit-ish>
$
Run Code Online (Sandbox Code Playgroud)
关于如何解决这个问题的任何想法?提前致谢!
Stu*_*ner 11
解决了以下内容:rm .git/CHERRY_PICK_HEAD
我意识到这很危险,因为这并不能保证git内部的一致性,但到目前为止我没有问题......
自从我从 2014 年开始回答以来,现在(2018 年)正确的命令是git cherry-pick --quit
.
在 Git 2.19(2018 年第 3 季度)之前,“ git cherry-pick --quit
”未能删除,CHERRY_PICK_HEAD
即使我们不会在它返回后进入挑选会议,这已得到纠正。
请参阅Nguy?n Thái Ng?c Duy ( ) 的提交 3e7dd99(2018 年 8 月 16 日)。(由Junio C Hamano合并-- --在commit 39e415c,2018 年 8 月 20 日)pclouds
gitster
樱桃挑选:修复 --quit 不删除 CHERRY_PICK_HEAD
--quit
应该是--abort
但没有恢复HEAD
。
留下CHERRY_PICK_HEAD
来可能会导致其他cherry-pick
仍在进行中的命令错误(例如“git commit --amend
”将拒绝工作)。也清洗一下。对于
--abort
,删除工作CHERRY_PICK_HEAD
在“git reset
”上,所以我们不需要做任何其他事情。但是让我们在--abort
测试中添加额外的检查来确认。
如果git cherry-pick --continue
不起作用,那就意味着git太旧了:在提交5a5d80f中为git 1.7.8(2011年12月)引入了该选项
它的工作原理是从.git/sequencer/todo中删除第一条指令并执行其中列出的剩余樱桃选择,
-s
并使用"-X
"中列出的初始命令中的选项(思考" "和" ").git/sequencer/opts
.
这些天(2014年),这将是你看到" You have not concluded your cherry-pick
" 时使用的命令.
归档时间: |
|
查看次数: |
31132 次 |
最近记录: |