Par Anonyme (non vérifié) , 29 avril 2026

Synopsis

git config --global rerere.enabled true
git rerere status
git rerere diff
git rerere clear

Description

The git rerere command (Reuse Recorded Resolution) records how you resolve a conflict the first time and replays the same resolution automatically the next time the same conflict appears. It is invaluable when long-lived feature branches are repeatedly merged or rebased onto a moving base — without rerere, you re-resolve the same conflicts every time.

Rerere is opt-in. Enable it globally with git config --global rerere.enabled true. Once enabled, every conflict resolution gets cached, and Git automatically applies the cached resolution on future encounters of the same conflict pre-image.

Dans l'usage quotidien, git rerere s'intègre étroitement avec les alias de shell, les plugins d'éditeur et l'intégration continue. Les utilisateurs avancés ajoutent souvent des alias combinant les flags qu'ils passent toujours, ou enveloppent la commande dans des scripts qui appliquent les conventions d'équipe. Le formatage de la sortie peut être personnalisé via la configuration Git — pretty formats, schémas de couleurs et comportement du pager sont tous ajustables. Quand quelque chose tourne mal, la première étape de diagnostic est généralement de relancer la commande avec GIT_TRACE=1 dans l'environnement, ce qui révèle les appels de plomberie sous-jacents. Pour les situations inhabituelles, la sortie --help (git rerere --help) ouvre la page de manuel complète avec les détails de chaque option, y compris celles rarement utilisées dans les workflows ordinaires mais essentielles pour le débogage ou le scripting à grande échelle.

Comprendre comment git rerere interagit avec le reste du modèle de données de Git — la base d'objets, l'index, les refs et l'arborescence de travail — est rentable. Chaque commande opère sur un sous-ensemble de ces pièces, et savoir laquelle elle touche aide à prédire les résultats et récupérer après les erreurs. Lire la documentation officielle de Git en parallèle de la pratique sur un dépôt jetable est la façon la plus rapide d'intérioriser les subtilités. La plupart des problèmes de production avec Git proviennent de l'une de trois causes : comportement par défaut surprenant, opérations réseau partielles, ou réécriture d'historique déjà partagé. Un modèle mental fonctionnel des effets de bord de git rerere aide à éviter les trois.

Options courantes

Subcommand / ConfigDescription
rerere.enabledTurn on automatic recording.
rerere.autoUpdateAutomatically stage resolved files.
statusShow files with recorded resolutions.
diffDisplay the recorded resolution.
remainingShow conflicts not yet resolved.
clearDrop all recorded resolutions.
forget <path>Forget the resolution for a single path.

Exemples

git config --global rerere.enabled true
git config --global rerere.autoUpdate true
# Enable for all repos

# After resolving a conflict during merge or rebase, rerere remembers.
# Next time the same conflict appears, the resolution is auto-applied.

git rerere status
# Show files where a recorded resolution kicked in

git rerere clear
# Wipe the recorded set if it gets stale

Erreurs fréquentes

Rerere only helps with identical conflicts. Slight context changes prevent reuse. If a recorded resolution turns out to be wrong, use git rerere forget <path> to clear it before re-resolving. Rerere data lives in .git/rr-cache/ and is local — it isn't shared with collaborators.

Commandes liées

git merge, git rebase, git mergetool, git config