cherry-pick 时遇到冲突,代码改完后怎么继续?

技术馨阳 阅读 134

我在 feature 分支上想 cherry-pick 主干的一个提交,结果提示有冲突。我手动改了冲突的文件,但不知道接下来该执行什么命令才能完成 cherry-pick?是不是还要 add 然后再 continue?

冲突的文件里原来有段逻辑是这样的:

function formatPrice(price) {
  return <code>$${price.toFixed(2)}</code>;
}

我现在已经把冲突标记删了,也保留了正确的版本,但 git status 显示 still in cherry-pick state,卡在这儿了……

我来解答 赞 10 收藏
二维码
手机扫码查看
2 条解答
❤悦弘
❤悦弘 Lv1
常见的解决方案就是先解决冲突然后继续 cherry-pick。你已经手动解决了冲突并删掉了冲突标记,接下来只需要将修改过的文件加到暂存区,然后继续 cherry-pick 即可。

具体步骤如下:
1. 使用 git add <文件名> 将解决冲突后的文件添加到暂存区。如果你解决了所有冲突,也可以使用 git add . 来一次性添加所有已解决冲突的文件。
2. 然后执行 git cherry-pick --continue 来继续 cherry-pick 过程。

举个例子,假设你解决冲突的文件名为 priceUtils.js,那么命令应该是:
git add priceUtils.js
git cherry-pick --continue


这样就完成了 cherry-pick 的后续操作。如果在解决冲突后发现不需要继续这个 cherry-pick,也可以用 git cherry-pick --abort 来取消整个过程。
点赞
2026-03-25 01:01
佳宁酱~
对,解决完冲突后需要 add 然后 continue,操作顺序是这样的:

先把你改好的文件 add 进去:

git add 冲突的文件路径


然后继续 cherry-pick:

git cherry-pick --continue


如果想保留原来的 commit 信息(通常建议保留),加个 --no-edit:

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


这样就完事了,cherry-pick 会用你保留的那个版本继续。

顺便说一句,你那个 formatPrice 函数改完之后记得测试一下,金额处理这种业务逻辑一旦出问题就是线上事故。手动解决冲突的时候很容易漏掉逻辑,尤其是这种涉及数值计算的。

如果中途后悔了,想放弃这次 cherry-pick,可以直接:

git cherry-pick --abort


回到之前的状态。
点赞
2026-03-10 17:20