How to fix No resolutions found in rerere cache in Git
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- Check if rerere is enabled
- Enable rerere globally
- Verify the rr-cache directory exists
- Check current rerere status
git config rerere.enabledNo 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
- 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
- Previous resolutions were pruned by git rerere gc
- The conflict pattern differs slightly from previously recorded ones
- You're working in a fresh clone without shared rerere cache
How to fix "No resolutions found in rerere cache"
First, verify that rerere is actually enabled in your Git configuration:
git config rerere.enabledIf this returns nothing or false, rerere is disabled and won't record or replay any resolutions.
To enable rerere for all repositories on your system:
git config --global rerere.enabled trueOr enable it just for the current repository:
git config rerere.enabled trueOnce enabled, Git will automatically record your conflict resolutions during future merges, rebases, and cherry-picks.
Check if the rerere cache directory exists:
ls -la .git/rr-cacheIf 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:
mkdir -p .git/rr-cacheDuring an active merge conflict, check what rerere knows:
# 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 diffIf these commands return empty output during a conflict, rerere either has no matching resolution or the conflict pattern doesn't match previous ones.
If this is a new conflict, resolve it manually. With rerere enabled, Git will record your resolution:
# 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 --continueYou should see "Recorded resolution for <file>" indicating rerere saved your fix. Next time this exact conflict occurs, Git will apply it automatically.
Old resolutions are automatically pruned. Check your GC settings:
git config gc.rerereResolved
git config gc.rerereUnresolvedBy default:
- Resolved conflicts are kept for 60 days
- Unresolved conflicts (recorded but not yet completed) are kept for 15 days
To increase retention:
git config --global gc.rerereResolved 180
git config --global gc.rerereUnresolved 60If you have an active conflict and want to check for resolutions:
git rerereThis 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:
git config rerere.autoupdate trueThis 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:
# Forget the bad resolution for a specific file
git checkout --merge <file>
git rerere forget <file>
# Now resolve correctly - rerere will record the new resolutionTo clear the entire cache (nuclear option):
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
- ๐Git Official Documentation
- ๐Git - git-rerere Documentation(Official Docs)
- ๐Git Book - Rerere(Official Docs)
- ๐ฌWhat is git-rerere and how does it work? - Stack Overflow(Stack Overflow)
- ๐ฌ
- ๐ฌHow can I audit git rerere's resolutions? - Stack Overflow(Stack Overflow)
- ๐