首页/开发/Git 与协作速查/git rerere 重用冲突解决结果
合并变基与冲突71 条

git rerere 重用冲突解决结果

记录冲突片段及其解决方式,之后再遇到相同冲突自动套用;适合长期维护补丁分支、反复同步上游的团队。

Git 与协作速查开发更新于 2026-10-13

重用冲突解决结果

记录冲突片段及其解决方式,之后再遇到相同冲突时自动套用同样的处理结果。它适合长期维护补丁分支、反复同步上游的场景:同一处冲突处理过一次之后,不必每次重新判断一遍。

基本信息

用途自动重放历史上解决过的冲突
启用方式打开对应配置开关,可设为全局生效
缓存位置仓库管理目录下的冲突缓存目录
配套命令可查看状态、查看记录内容、手动重放
共享性缓存不随克隆复制,各人各记

典型使用场景

  • 长期维护的补丁分支反复同步上游
  • 同一处冲突在同一分支上周期性出现
  • 需要保持冲突解决方式前后一致
  • 集成阶段频繁变基或合并
  • 减少重复性的手工冲突处理

常用命令

常用命令
git config --global rerere.enabled true   # 启用冲突解决记录
git rerere status                          # 查看记录的冲突状态
git rerere diff                            # 查看记录的解决内容
git rerere                                 # 手动重放已记录的解决方式
git rebase --continue                      # 处理完冲突后按原流程收尾

相关子命令

子命令作用
查看状态列出当前记录的冲突文件
查看差异显示记录的解决内容
手动重放套用已记录的解决方式
开关配置控制整套机制是否启用
启用之后解决过的冲突会被记录,遇到相同冲突时自动套用,重复劳动明显减少。
把它当作辅助手段:自动套用的结果仍要读一遍,确认是否符合当前上下文。
缓存保存在本地仓库管理目录里,不随克隆分发,团队成员各记各的,不能当作共享知识库。
定期检查缓存内容,长期积累的旧记录在代码大幅变化后可能不再适用。
它与冲突标记的展示样式互不影响,可以同时启用:一个负责判断依据,一个负责减少重复劳动。

易错点

  • 自动套用的结果与当前上下文不符,直接继续会产生语义错误的解法,命中时仍要人工确认
  • 把缓存当作团队共享知识,实际它不随克隆分发,新成员没有任何记录
  • 缓存积累过多旧记录,遇到相似但已经变化的冲突时套用了错误解法
  • 在缓存被清理之后期待自动生效,未命中时应按正常流程手工解决

数据来源与参考

  • Git 官方文档:git-rerere
  • Pro Git 2nd Edition · 7.9 Rerere
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌