解决cherry-pick冲突后执行git amend失败,求原因及解决方法
Git cherry-pick 后无法执行 amend?原因和解决办法
我来帮你把这个问题讲明白——你遇到的报错其实是Git在直白地提醒你:“你还没走完cherry-pick的流程呢,先把这件事做完再改提交!”
为什么会出现这个提示?
当你执行git cherry-pick遇到冲突,手动解决冲突并git add修改后,Git并没有结束整个cherry-pick操作,它还处于**“中间处理状态”**:Git已经记录了你解决冲突的修改,但还没正式生成那个cherry-pick出来的新提交。
这时候你跑去用git commit --amend,Git就会犯难——它搞不清楚你要修改的是哪个提交:是原本你要cherry-pick的那个远程提交?还是你正在处理的、尚未完成的cherry-pick临时状态?为了避免你把仓库状态搞乱,Git直接抛出错误阻止了这个操作。
怎么解决?分两步走:
先完成cherry-pick流程
解决冲突并git add所有修改后,执行这条命令让Git结束cherry-pick操作:git cherry-pick --continue执行后Git会自动打开默认编辑器,让你确认(或修改)cherry-pick生成的新提交信息,保存退出后,cherry-pick就正式完成了。
如果完成后还需要修改提交
要是你已经完成了cherry-pick,但事后发现要调整提交内容或信息,这时候就可以正常使用git commit --amend了:# 先修改需要调整的文件 git add <修改后的文件路径> git commit --amend同样,编辑器会弹出让你修改提交信息,编辑完成保存即可。
额外提示
如果中途不想继续cherry-pick了,也可以用这条命令终止操作,回到cherry-pick前的仓库状态:
git cherry-pick --abort
内容的提问来源于stack exchange,提问作者garg10may
相关产品推荐
相关产品推荐

