From: Oleg Broytman Date: Sat, 22 Aug 2015 15:00:04 +0000 (+0300) Subject: Explain rerere X-Git-Url: https://git.phdru.name/?p=git-wiki.git;a=commitdiff_plain;h=d6e28ebc67d2eb71fb3350522f137f095b8bb21c Explain rerere --- diff --git a/pep-git.txt b/pep-git.txt index 624efb1..942aa34 100644 --- a/pep-git.txt +++ b/pep-git.txt @@ -674,7 +674,31 @@ Wiki. ReReRe ====== -https://git-scm.com/book/en/Git-Tools-Rerere +Rerere is a mechanism that helps to resolve repeated merge conflicts. +The most frequent source of recurring merge conflicts are topic +branches that are merged into mainline and then the merge commits are +removed; that's often performed to test the topic branches and train +rerere; merge commits are removed to have clean history and finish a +topic branch with only one last merge commit. + +Rerere works by remembering the states of tree before and after a +successful commit. That way rerere can automatically resolve conflicts +if they appear in the same files. + +Rerere can be used manually with ``git rerere`` command but most often +it's used automatically. Enable rerere with these commands in a +working tree:: + + $ git config rerere.enabled true + $ git config rerere.autoupdate true + +You don't need to turn rerere on globally - you don't want rerere in +bare repositories or repositories without branches; you only need +rerere in repos where you often perform merges and resolve merge +conflicts. + +See `Rerere `_ in The +Book. Database maintenance