cherry-pick 时遇到冲突怎么解决?

一利娇 阅读 73

我用 git cherry-pick abc123 想把某个提交挑到当前分支,结果提示有冲突,一脸懵。

试过手动改文件,但改完不知道下一步该执行什么命令才能继续完成 cherry-pick。之前 merge 冲突后是 git add 然后 git commit,但 cherry-pick 是不是也一样?

现在卡在中间状态,git status 显示 “You are currently cherry-picking commit abc123”,但我不确定操作对不对,怕搞乱提交历史。

我来解答 赞 7 收藏
二维码
手机扫码查看
2 条解答
程序员春景
冲突解决流程跟 merge 差不多,但后续命令不一样。

冲突了先改文件,改完保存,然后 git add 冲突文件:

git add 你修改的文件


然后执行继续命令:

git cherry-pick --continue


如果你不想改提交信息,默认会用原来的信息。如果想改,加 --no-edit:

git cherry-pick --continue --no-edit


执行完这个命令就完事了,cherry-pick 会继续应用剩下的修改。

如果中途放弃这次 cherry-pick,可以:

git cherry-pick --abort


回到操作前的状态。

还有个情况:如果 cherry-pick 的提交不止一个(用区间 like abc123..def456),中途冲突解决后继续,可能会遇到停在某个提交的情况,同样用 --continue 往下走就行。
点赞
2026-03-11 13:04
设计师晴文
卡在中间状态确实让人头大,不过别慌,这比 merge 冲突处理起来效率更高。你手动改文件的方向是对的,但命令别用错了。

解决完代码冲突后,先要把改好的文件标记为已解决,执行 git add .

关键点来了,千万别像 merge 那样直接去 git commit。cherry-pick 的流程更自动化,你应该执行 git cherry-pick --continue。这条命令会自动帮你完成剩下的提交工作,保留原提交的信息,不用你再敲一遍 commit message,省时省力。

如果发现冲突太乱搞不定,想退回去,直接用 git cherry-pick --abort 就能回到操作前的干净状态。
点赞 2
2026-03-04 10:15