How to fix hint: Rerere is not enabled. Run 'git config rerere.enabled true' in Git

GitINTERMEDIATELOWUpdated Dec 2, 2025ยท 152 views

Git suggests enabling rerere to automatically reuse conflict resolutions. This feature remembers how you resolved merge conflicts and reapplies those solutions when the same conflicts appear again.

Quick fix

Fixes hint: Rerere is not enabled. Run 'git config rerere.enabled true'

git config --global rerere.enabled true
  1. Enable rerere globally for all repositories
  2. Enable rerere for a specific repository
  3. Resolve the current conflict and let rerere record it
  4. Test rerere with a future conflict
git โ€” error
git config --global rerere.enabled true
hint: Rerere is not enabled. Run 'git config rerere.enabled true'

What this error means

Git rerere (reuse recorded resolution) is an optional feature that helps developers who frequently encounter the same merge conflicts. When enabled, rerere records how you resolve specific conflicts and automatically applies those resolutions when identical conflicts occur in future merges or rebases. The hint message appears when Git detects that you're resolving a conflict that rerere could have handled automatically if it were enabled. This typically happens during merge operations, rebases, or cherry-picks where similar code changes create recurring conflicts. Git does not enable rerere by default because it introduces a secondary conflict resolution history that operates independently of your commit history. While this automation can save significant time, Git wants you to make an explicit choice to use this feature.

Typical symptoms

  • Hint message appears during merge or rebase: "Rerere is not enabled"
  • You manually resolve the same merge conflict multiple times across different branches
  • Git merge or rebase operations require manual conflict resolution for previously seen conflicts
  • No automatic conflict resolution occurs despite resolving similar conflicts before

Common causes

  1. Git rerere is disabled by default and has not been configured in your repository
  2. You are working with long-lived feature branches that require frequent integration
  3. Your workflow involves rebasing branches repeatedly against an evolving main branch
  4. You perform control merges to preview conflicts before final integration

How to fix "hint: Rerere is not enabled. Run 'git config rerere.enabled true'"

1Enable rerere globally for all repositories

To enable rerere for all your Git repositories, run:

bash
git config --global rerere.enabled true

This sets the configuration in your global Git config (~/.gitconfig or ~/.config/git/config).

You can also enable automatic staging of rerere-resolved files:

bash
git config --global rerere.autoupdate true

The autoupdate setting automatically stages files that rerere successfully resolves, reducing manual steps.

2Enable rerere for a specific repository

If you prefer to enable rerere only for the current repository, use:

bash
git config rerere.enabled true

This updates the repository-specific config file at .git/config.

You can verify the setting with:

bash
git config --get rerere.enabled

This should output "true" if rerere is enabled.

3Resolve the current conflict and let rerere record it

After enabling rerere, complete your current merge or rebase:

1. Manually resolve the conflicts in your files
2. Stage the resolved files:

bash
git add <resolved-files>

3. Complete the merge or rebase:

bash
git commit    # For merges
# or
git rebase --continue    # For rebases

Rerere will now record this conflict resolution in .git/rr-cache for future use.

4Test rerere with a future conflict

When you encounter the same conflict again, rerere will automatically apply the recorded resolution.

You can check rerere status during a conflict:

bash
git rerere status    # Shows paths with conflicts
git rerere diff      # Shows current resolution state

If rerere resolves conflicts automatically, you'll still need to verify and stage the files before committing.

Advanced notes

Cache Management: Git maintains rerere records in .git/rr-cache. By default, Git prunes unresolved conflicts older than 15 days and resolved conflicts older than 60 days. You can adjust these with gc.rerereunresolved and gc.rerereresolved configuration variables.

Conflict Style Configuration: For better rerere performance, consider using the zdiff3 conflict style which provides more context:

bash
git config --global merge.conflictstyle zdiff3

Manual Management: You can manage rerere records manually:
- git rerere clear - Clears all rerere metadata (useful if aborting a merge)
- git rerere forget <path> - Forgets the resolution for a specific file
- git rerere gc - Manually runs garbage collection on old records

Important Caveat: Rerere introduces a secondary resolution history orthogonal to your commit graph. A merge you abort or remove from history could still affect future conflict resolution. Always verify rerere-resolved conflicts before committing, especially in critical branches. Rerere leaves files marked as unmerged so you must manually stage them after verification.

Best Use Cases: Rerere is most beneficial for workflows with long-lived feature branches, frequent rebasing, control merges for testing integration, or when switching between merge and rebase strategies for the same branches.

Frequently asked questions

What does "hint: Rerere is not enabled. Run 'git config rerere.enabled true'" mean?
Git rerere (reuse recorded resolution) is an optional feature that helps developers who frequently encounter the same merge conflicts. When enabled, rerere records how you resolve specific conflicts and automatically applies those resolutions when identical conflicts occur in future merges or rebases. The hint message appears when Git detects that you're resolving a conflict that rerere could have handled automatically if it were enabled.
How do I fix "hint: Rerere is not enabled. Run 'git config rerere.enabled true'"?
Git suggests enabling rerere to automatically reuse conflict resolutions. This feature remembers how you resolved merge conflicts and reapplies those solutions when the same conflicts appear again.
What causes "hint: Rerere is not enabled. Run 'git config rerere.enabled true'"?
Git rerere is disabled by default and has not been configured in your repository You are working with long-lived feature branches that require frequent integration Your workflow involves rebasing branches repeatedly against an evolving main branch
Is the "hint: Rerere is not enabled. Run 'git config rerere.enabled true'" error serious?
It is a low-severity error โ€” more of a blocker than a risk. The steps above resolve it.

Official resources & further reading