Are there any downsides to enabling git rerere?
As J. C. Hamano mentions in his article "Fun with rerere"
- Rerere remembers how you chose to resolve the conflicted regions;
- Rerere also remembers how you touched up outside the conflicted regions to adjust to semantic changes;
- Rerere can reuse previous resolution even though you were merging two branches with different contents than the one you resolved earlier.
Even people who have been using rerere for a long time often fail to notice the last point.
So if you activate rerere
on too broad a content, you might end up with surprising or confusing merge resolution because of the last point.
Another downside was rerere
asking you for your pin for GPG signature (if you had activated commit.gpgSign
).
This has been fixed with Git 2.38 (Q3 2022)
If you do a merge incorrectly, then discard it, then do the "same" merge again, it will be incorrect again. You can forget a recorded resolution, though. From the documentation:
git rerere forget <pathspec>
This resets the conflict resolutions which rerere has recorded for the current conflict in
<pathspec>
.
Be careful to use it on specific paths; you don't want to blow away all of your recorded resolutions everywhere. (forget
with no arguments has been deprecated to save you from doing this, unless you type git rerere forget .
to explicitly request it.)
But if you don't think to do that, you could easily end up putting that incorrect merge into your history..