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

如何在经多次Git Merge与Pull的分支上实现干净Rebase并复用冲突解决结果?

在他人维护分支上实现干净Git Rebase的方案

1. 实现需求的最简方式

直接借助git rebase的冲突解决策略参数,一步完成操作:

  • 若要让Git自动采用你当前正在rebase的分支的修改解决冲突,执行:
    git rebase -X theirs <目标分支名>
    
  • 若要让Git自动采用他人维护的目标分支的修改解决冲突,执行:
    git rebase -X ours <目标分支名>
    

注意:rebase场景下的ours和theirs含义与merge时相反——ours指向你当前操作的分支,theirs指向被rebase的目标分支,别混淆。

执行后如果无冲突,rebase会自动完成;若仍有无法自动解决的冲突,手动修改冲突文件后执行git add <冲突文件>,再用git rebase --continue推进,直到整个rebase流程结束。

2. 能否复用他人此前的冲突解决方案?

可以,Git的rerere(reuse recorded resolution)功能专门解决这个问题:

  1. 先开启该功能(可选全局或当前仓库生效):
    # 全局开启,所有本地仓库都生效
    git config --global rerere.enabled true
    # 仅当前仓库开启
    git config rerere.enabled true
    
  2. 当遇到与他人之前解决过的完全相同的冲突时,rerere会自动调用历史解决方案,无需手动重复操作。只要冲突的代码块匹配之前记录的内容,Git就会自动应用已有的解决结果。
  3. 若需要管理或查看记录的解决方案,可使用以下命令:
    • 查看所有已记录的冲突项:git rerere status
    • 查看某次冲突的具体解决内容:git rerere diff

开启rerere后,无论是rebase还是merge操作,遇到重复冲突都会自动复用历史方案,很适合多人协作的分支维护场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 22:20:33