rerere ("reuse recorded resolution") remembers how you resolved a conflict. With rerere.enabled, Git 1,932 saved the conflicted hunk as a preimage when the rebase stopped and your resolution as a postimage when you continued, both under .git/rr-cache/. To watch it work, throw away the finished rebase (ORIG_HEAD still names the branch as it was before) and run it again:
git reset -q --hard ORIG_HEAD
git rebase main
git diffOutput
...
Resolved 'app.js' using previous resolution.
...
- FROM books ${where} ORDER BY ${order}, id`,
- FROM books ${where} ORDER BY ${order} ${page}`,
++ FROM books ${where} ORDER BY ${order}, id ${page}`,
...Git still reports the conflict, but the file already holds your resolution, which you review and stage (rerere.autoUpdate stages it for you). rerere pays off whenever a conflict returns: a long-lived branch rebased weekly, a test merge redone, an aborted rebase restarted. git rerere forget <path> drops a bad resolution.