如何仅中止当前git cherry-pick操作 保留此前已完成的拣选结果
问题解答
能不能直接执行git push后checkout文件丢弃更改?
不能,原因如下:
- 你当前处于cherry-pick冲突的中间状态,Git会直接拦截
git push请求,根本无法完成推送。 - 就算通过特殊参数绕过Git检查强行推送,后续checkout丢弃更改的操作很容易误删之前已经成功拣选的有效内容,还可能把工作区其他未备份的改动一起清掉,风险极高。
中止本次失败cherry-pick、保留之前所有拣选结果的方法
结合你贴出的git status输出判断,你之前的拣选操作都已经正常生成提交,仅最后一次拣选卡在冲突阶段,直接执行对应命令即可:
git cherry-pick --abort
执行后,这次失败拣选带来的暂存改动、未合并冲突文件都会被清理,仓库HEAD会停在最后一次拣选成功的提交位置,之前所有完成的拣选内容都会完整保留,不会被回退。
补充说明:如果你是一次性传入多个提交SHA执行批量cherry-pick(例如
git cherry-pick <sha1> <sha2> <sha3>),要中止当前冲突的拣选、保留之前批量拣选成功的内容,不要用--abort参数,要执行git cherry-pick --quit。批量拣选场景下--abort会回滚整个拣选序列的所有操作,直接回到批量执行前的状态,会丢失之前已经拣选成功的内容。
内容的提问来源于stack exchange,提问作者S.K
相关产品推荐
相关产品推荐

