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

Ce que fait rerere

Rerere — "reuse recorded resolution" — observe comment vous résolvez un conflit de merge, enregistre la résolution et la rejoue la prochaine fois que le même conflit apparaît. Inestimable sur les branches de longue durée qui rebasent ou mergent à répétition contre un main actif.

Activation

git config --global rerere.enabled true
git config --global rerere.autoupdate true

Comment ça marche

Quand un conflit survient, Git stocke un hash du contexte du conflit sous .git/rr-cache/. Après résolution et commit, la résolution est associée à ce hash.

Inspecter l'état

git rerere status
git rerere diff
git rerere remaining

Oublier une mauvaise résolution

git rerere forget path/to/file

Cas d'usage : tempêtes de rebase

Vous maintenez une longue branche feature et rebasez chaque semaine contre main. Les mêmes conflits dans CHANGELOG.md apparaissent à chaque fois.

Cas d'usage : branche d'intégration

Certaines équipes maintiennent une branche d'intégration qui re-merge toutes les branches feature chaque nuit.

Erreurs courantes

Faire confiance à rerere aveuglément : inspectez toujours avec git diff --staged avant de commiter.

Entraîner rerere depuis l'historique

git rev-list --merges main | while read merge; do
  git checkout "$merge^"
  git merge "$merge^2" || git rerere
  git reset --hard
done