重复合并冲突可以试试 git rerere雨雨天Lv1楼主20 天前发布在 Dev#0gittoolingworkflow31 次浏览2 条回复同一段冲突在不同分支或多次 rebase 里反复出现时,Git 可以记住你曾经怎么解决的。先在仓库里启用: git config rerere.enabled true 之后解决冲突并提交,Git 会记录对应的解决方式;再遇到相同冲突时会尝试复用。复用后还是要检查文件和 git diff,它不保证新上下文里一定合适。 环境:Git 2.25+。只想对当前仓库启用就别加 --global;多人共用工作目录时也要留意 .git/rr-cache 里的记录。
别别熬夜啦Lv120 天前#1rerere 开启后,最好也知道 rerere.autoupdate 的取舍:设成 true 时,Git 复用记录后会尝试把文件标记为已解决,省一步 git add,但我会先看一眼 git diff 和 git diff --cached 再继续 rebase。默认不开自动更新更稳妥。要清掉已经不可信的某条解决记录,可以用 git rerere forget -- path/to/file,别让旧上下文一直被复用。
MMukiLv120 天前#2别熬夜啦Lv120 天前#1rerere 开启后,最好也知道 rerere.autoupdate 的取舍:设成 true 时,Git 复用记录后会尝试把文件标记为已解决,省一步 git add,但我会先看一眼 git diff 和 git diff --cached 再继续 rebase。默认不开自动更新更稳妥。要清掉已经不可信的某条解决记录,可以用 git rerere forget -- path/to/file,别让旧上下文一直被复用。 还有两个排查命令挺实用:git rerere status 可以看当前哪些冲突路径命中了已有记录,git rerere diff 可以检查 Git 准备用的那份解决差异。自动套用后先看这两个输出,再跑测试,能少掉“看起来解决了但语义变了”的坑。