同一类冲突反复出现在 rebase 或合并里时,可以让 Git 记录已经确认过的解决方式,后面自动复用。
环境:Git 2.20+。先在当前仓库开启:
git config rerere.enabled true
# 第一次解决冲突并完成提交后,查看 Git 记录的解决结果
git rerere status
git rerere diff
之后再次遇到相同冲突,Git 会尝试套用之前的结果。应用后不要直接无脑提交,先检查工作区和测试:
git diff
git status
# 按项目实际命令运行测试
确认没问题再 git add 和继续 rebase。想清掉某个已经不合适的记录,可以用 git rerere forget -- <path>;整个仓库的记录通常在 .git/rr-cache/,不建议把它当成代码提交进仓库。