You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Git rebase变基时如何对单个冲突步骤使用指定合并策略处理

问题结论

存在可以满足需求的操作,无需中断当前正在进行的rebase流程。


全版本通用操作方案

所有Git版本都可以通过以下步骤实现单步重试:

  1. 先丢弃当前未完成的合并结果,将工作区、暂存区恢复到当前rebase步骤开始前的干净状态:
git merge --abort

也可以用git reset --hard HEAD达到同样效果。
2. 手动用指定合并策略重新应用当前rebase步骤对应的提交:
rebase过程中当前待应用的提交哈希会存在.git/rebase-merge/original-commit文件中,直接调用cherry-pick传入你需要的合并参数即可:

git cherry-pick -s recursive -X theirs $(cat .git/rebase-merge/original-commit)
  1. 若上述命令执行无冲突,直接执行git rebase --continue即可继续后续rebase流程,后续步骤仍使用你启动rebase时指定的默认合并规则,不受本次单步策略的影响。如果执行后仍有冲突,手动解决冲突后执行git add <冲突文件>,再执行git rebase --continue即可。

高版本Git简便方案

如果你使用的是Git 2.34及以上版本,可以不用手动执行cherry-pick,清掉未完成合并后直接在continue时传入合并策略参数,参数仅作用于当前单步:

# 先清掉当前未完成合并
git merge --abort
# 重试当前步骤,使用指定合并策略
git rebase --continue -s recursive -X theirs

内容的提问来源于stack exchange,提问作者Wug

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 09:00:05