NAME
----
-git-rerere - Reuse recorded resolve
+git-rerere - Reuse recorded resolution of conflicted merges
SYNOPSIS
--------
-'git-rerere' [clear|diff|status]
+'git-rerere' [clear|diff|status|gc]
DESCRIPTION
-----------
results and applying the previously recorded hand resolution.
[NOTE]
-You need to create `$GIT_DIR/rr-cache` directory to enable this
+You need to set the config variable rerere.enabled to enable this
command.
This resets the metadata used by rerere if a merge resolution is to be
is aborted. Calling gitlink:git-am[1] --skip or gitlink:git-rebase[1]
-[--skip|--abort] will automatcally invoke this command.
+[--skip|--abort] will automatically invoke this command.
'diff'::
'gc'::
This command is used to prune records of conflicted merge that
-occurred long time ago.
+occurred long time ago. By default, conflicts older than 15
+days that you have not recorded their resolution, and conflicts
+older than 60 days, are pruned. These are controlled with
+`gc.rerereunresolved` and `gc.rerereresolved` configuration
+variables.
DISCUSSION
------------
$ git checkout topic
- $ git pull . master
+ $ git merge master
o---*---o---+ topic
/ /
------------
$ git checkout topic
- $ git pull . master
+ $ git merge master
$ ... work on both topic and master branches
$ git checkout master
- $ git pull . topic
+ $ git merge topic
o---*---o---+---o---o topic
/ / \
------------
$ git checkout topic
- $ git pull . master
+ $ git merge master
$ git reset --hard HEAD^ ;# rewind the test merge
$ ... work on both topic and master branches
$ git checkout master
- $ git pull . topic
+ $ git merge topic
o---*---o-------o---o topic
/ \
out to your working tree file, so you would not have to manually
resolve it. Note that `git-rerere` leaves the index file alone,
so you still need to do the final sanity checks with `git diff`
-(or `git diff -c`) and `git update-index` when you are
-satisfied.
+(or `git diff -c`) and `git add` when you are satisfied.
As a convenience measure, `git-merge` automatically invokes
`git-rerere` when it exits with a failed automerge, which
resolve when it is not. `git-commit` also invokes `git-rerere`
when recording a merge result. What this means is that you do
not have to do anything special yourself (Note: you still have
-to create `$GIT_DIR/rr-cache` directory to enable this command).
+to set the config variable rerere.enabled to enable this command).
In our example, when you did the test merge, the manual
resolution is recorded, and it will be reused when you do the