The useful correction from the comments is that many developers barely hit this case in normal day-to-day work. If you keep a clean one-way flow,
rebase feature branches onto `main`, then merge back into `main`, most conflicts should show up once on the feature branch and stay solved. In that workflow, repeated identical conflicts are more a smell than a constant tax. `rerere` starts paying off when the repo shape itself creates duplication: long-lived branches, product forks, backports across many release lines, stacked feature branches, or organizations doing lots of cherry-picking between similar branches.
That pushed the conversation away from `rerere` as a magic Git upgrade and toward workflow design. Several people argued that if you are repeatedly resolving the same conflict on one branch, the real issue is usually branch strategy, review bottlenecks, or oversized refactors. Others pushed back that integration branches are sometimes the least bad option for large cross-cutting work, especially outside fast
CI-driven web apps. A second practical thread covered Git config. People recommended enabling `rerere`, `autoUpdate`, and `merge.conflictStyle=
zdiff3`, but warned that `
pull.rebase=true` can confuse less experienced users if they do not have a disciplined model of what `pull` is rewriting. The most actionable side debate was about force pushes: if you rebase local branches, `
--force-with-lease` came through as the sane default because it prevents you from overwriting remote commits you have not seen yet, even if the only person you are racing is yourself on another machine or
worktree.