How to fix No resolutions found in rerere cache in Git

GitINTERMEDIATELOWUpdated Dec 6, 2025ยท 94 views

This message appears when Git's rerere (reuse recorded resolution) feature has no saved conflict resolutions to apply. Either rerere is not enabled, the cache is empty, or the specific conflict hasn't been resolved before.

Quick fix

Fixes No resolutions found in rerere cache

git config rerere.enabled
  1. Check if rerere is enabled
  2. Enable rerere globally
  3. Verify the rr-cache directory exists
  4. Check current rerere status
git โ€” error
git config rerere.enabled
No resolutions found in rerere cache

What this error means

Git's rerere (reuse recorded resolution) feature automatically records how you resolve merge conflicts so it can apply the same resolution when the same conflict occurs again. The "No resolutions found in rerere cache" message indicates that Git looked for a previously recorded resolution but couldn't find one. This typically happens in one of three scenarios: 1. **rerere is not enabled** - By default, Git doesn't record conflict resolutions. You must explicitly enable the feature. 2. **The cache is empty** - Even with rerere enabled, if you haven't resolved any conflicts yet, there's nothing to reuse. 3. **This is a new conflict** - The specific conflict you're facing hasn't been encountered and resolved before, so there's no matching resolution in the cache. The rerere cache lives in `.git/rr-cache/` and stores hashed representations of conflicts paired with their resolutions. When Git sees a conflict it's seen before, it can automatically apply your previous resolution without manual intervention.

Typical symptoms

  • Running 'git rerere' shows 'No resolutions found' message
  • Git rerere status returns empty output
  • Merge conflicts are not being automatically resolved as expected
  • The .git/rr-cache directory is empty or doesn't exist
  • git rerere diff shows nothing even during active conflicts
  • Repeated merge conflicts require manual resolution each time

Common causes

  1. rerere.enabled is set to false or not configured (most common)
  2. The .git/rr-cache directory doesn't exist or was deleted
  3. This is a genuinely new conflict that hasn't been resolved before
  4. Previous resolutions were pruned by git rerere gc
  5. The conflict pattern differs slightly from previously recorded ones
  6. You're working in a fresh clone without shared rerere cache

How to fix "No resolutions found in rerere cache"

1Check if rerere is enabled

First, verify that rerere is actually enabled in your Git configuration:

bash
git config rerere.enabled

If this returns nothing or false, rerere is disabled and won't record or replay any resolutions.

2Enable rerere globally

To enable rerere for all repositories on your system:

bash
git config --global rerere.enabled true

Or enable it just for the current repository:

bash
git config rerere.enabled true

Once enabled, Git will automatically record your conflict resolutions during future merges, rebases, and cherry-picks.

3Verify the rr-cache directory exists

Check if the rerere cache directory exists:

bash
ls -la .git/rr-cache

If it doesn't exist, Git will create it automatically when rerere is enabled and you resolve your first conflict. You can also create it manually:

bash
mkdir -p .git/rr-cache
4Check current rerere status

During an active merge conflict, check what rerere knows:

bash
# Show files with conflicts that rerere is tracking
git rerere status

# Show files with conflicts that have NOT been autoresolved
git rerere remaining

# Show the diff of what rerere would apply
git rerere diff

If these commands return empty output during a conflict, rerere either has no matching resolution or the conflict pattern doesn't match previous ones.

5Resolve the conflict manually to train rerere

If this is a new conflict, resolve it manually. With rerere enabled, Git will record your resolution:

bash
# Open the conflicting file and resolve the conflict markers
# Then mark it as resolved
git add <conflicting-file>

# Continue your merge/rebase
git merge --continue
# or
git rebase --continue

You should see "Recorded resolution for <file>" indicating rerere saved your fix. Next time this exact conflict occurs, Git will apply it automatically.

6Check rerere garbage collection settings

Old resolutions are automatically pruned. Check your GC settings:

bash
git config gc.rerereResolved
git config gc.rerereUnresolved

By default:
- Resolved conflicts are kept for 60 days
- Unresolved conflicts (recorded but not yet completed) are kept for 15 days

To increase retention:

bash
git config --global gc.rerereResolved 180
git config --global gc.rerereUnresolved 60
7Manually run rerere on existing conflicts

If you have an active conflict and want to check for resolutions:

bash
git rerere

This command (with no subcommand) tells Git to:
1. Record the current conflict state (preimage)
2. Look for a matching resolution
3. Apply it if found

If you see "Resolved '<file>' using previous resolution", the conflict was auto-fixed. Otherwise, you'll need to resolve it manually.

Advanced notes

### How Rerere Matching Works

Rerere identifies conflicts by hashing the conflict markers (the <<<<<<<, =======, >>>>>>> sections). This means:

- Small changes break matching - If the surrounding context of a conflict changes, rerere may not recognize it as the same conflict
- Nested markers fail - Conflicts with improperly nested markers cannot be recorded
- File deletions aren't tracked - If your resolution was to delete the file, rerere can't record that

### Sharing Rerere Cache Between Clones

The .git/rr-cache directory is local to each clone. To share resolutions across a team:

1. Copy the rr-cache directory - You can manually copy .git/rr-cache between repositories
2. Use a shared location - Some teams symlink rr-cache to a shared directory
3. Third-party tools - Projects like git-rerere-train can help populate the cache from existing merge commits

### Rerere Autoupdate Setting

By default, rerere applies the resolution to your working tree but doesn't stage it:

bash
git config rerere.autoupdate true

This makes rerere also run git add on successfully resolved files. Use with caution - you may want to review resolutions before staging.

### Troubleshooting Misapplied Resolutions

If rerere applies a bad resolution:

bash
# Forget the bad resolution for a specific file
git checkout --merge <file>
git rerere forget <file>

# Now resolve correctly - rerere will record the new resolution

To clear the entire cache (nuclear option):

bash
git rerere clear

### Typical Workflow with Rerere

1. Enable rerere: git config --global rerere.enabled true
2. When you hit a conflict, resolve it manually
3. Git records: "Recorded resolution for <file>"
4. Later, same conflict appears during rebase/merge
5. Git applies: "Resolved '<file>' using previous resolution"
6. Verify the resolution is correct, then git add and continue

### Why Rerere is Especially Useful

- Long-running feature branches - When you repeatedly rebase onto main, the same conflicts reappear
- Backporting fixes - Cherry-picking to release branches often produces predictable conflicts
- Reverting and re-applying - If you revert a merge and later re-merge, rerere remembers the resolutions

Frequently asked questions

What does "No resolutions found in rerere cache" mean?
Git's rerere (reuse recorded resolution) feature automatically records how you resolve merge conflicts so it can apply the same resolution when the same conflict occurs again. The "No resolutions found in rerere cache" message indicates that Git looked for a previously recorded resolution but couldn't find one. This typically happens in one of three scenarios: 1.
How do I fix "No resolutions found in rerere cache"?
This message appears when Git's rerere (reuse recorded resolution) feature has no saved conflict resolutions to apply. Either rerere is not enabled, the cache is empty, or the specific conflict hasn't been resolved before.
What causes "No resolutions found in rerere cache"?
rerere.enabled is set to false or not configured (most common) The .git/rr-cache directory doesn't exist or was deleted This is a genuinely new conflict that hasn't been resolved before
Is the "No resolutions found in rerere cache" error serious?
It is a low-severity error โ€” more of a blocker than a risk. The steps above resolve it.

Official resources & further reading