Sinossi
git config --global rerere.enabled true
git rerere status
git rerere diff
git rerere clear
Descrizione
Il comando git rerere (Reuse Recorded Resolution) registra come risolvi un conflitto la prima volta e riproduce la stessa risoluzione automaticamente la volta successiva che lo stesso conflitto appare. È prezioso quando feature branch di lunga durata sono ripetutamente mergiati o rebasati su una base in movimento — senza rerere, ri-risolvi gli stessi conflitti ogni volta.
Rerere è opt-in. Abilitalo globalmente con git config --global rerere.enabled true. Una volta abilitato, ogni risoluzione di conflitto viene cachata, e Git applica automaticamente la risoluzione cachata sui futuri incontri della stessa pre-immagine di conflitto.
Nell'uso quotidiano, git rerere si integra con alias e CI.
Capire il modello dati di Git aiuta a prevedere i risultati.
Opzioni comuni
| Sottocomando / Config | Descrizione |
|---|---|
rerere.enabled | Attiva la registrazione automatica. |
rerere.autoUpdate | Mette automaticamente in stage i file risolti. |
status | Mostra file con risoluzioni registrate. |
diff | Visualizza la risoluzione registrata. |
remaining | Mostra conflitti non ancora risolti. |
clear | Elimina tutte le risoluzioni registrate. |
forget <path> | Dimentica la risoluzione per un singolo path. |
Esempi
git config --global rerere.enabled true
git config --global rerere.autoUpdate true
# Abilita per tutti i repo
# Dopo aver risolto un conflitto durante merge o rebase, rerere ricorda.
# La prossima volta che lo stesso conflitto appare, la risoluzione viene auto-applicata.
git rerere status
# Mostra file dove una risoluzione registrata è entrata in azione
git rerere clear
# Cancella il set registrato se diventa stantio
Errori comuni
Rerere aiuta solo con conflitti identici. Lievi cambiamenti di contesto prevengono il riuso. Se una risoluzione registrata si rivela sbagliata, usa git rerere forget <path> per cancellarla prima di ri-risolvere. I dati rerere vivono in .git/rr-cache/ e sono locali — non sono condivisi con i collaboratori.
Comandi correlati
git merge, git rebase, git mergetool, git config