Sinossi
git add -p [<path>...]
git add --patch [<path>...]
Descrizione
Il comando git add -p lancia un'interfaccia interattiva che attraversa ogni "hunk" di modifiche nella tua working tree, chiedendoti di decidere per ognuno: stage, skip, split, edit, ecc. Questa è l'arma segreta per costruire commit puliti e atomici quando la tua working tree contiene un misto di modifiche correlate e non correlate.
Il prompt interattivo accetta comandi a singola lettera: y (sì, mette in stage questo hunk), n (no, salta), s (divide in hunk più piccoli), e (modifica l'hunk manualmente), q (esce), ? (aiuto), e diversi altri. Padroneggiare add -p è una delle abilità a maggior leva per produrre storia revisionabile.
Nell'uso quotidiano, git add -p si integra con alias e CI.
Capire il modello dati di Git aiuta a prevedere i risultati.
Opzioni comuni
| Comando interattivo | Descrizione |
|---|---|
y | Mette in stage questo hunk. |
n | Non mette in stage questo hunk. |
s | Divide in hunk più piccoli. |
e | Modifica manualmente l'hunk. |
a | Mette in stage questo e tutti gli hunk rimanenti in questo file. |
d | Salta questo e tutti gli hunk rimanenti in questo file. |
q | Esce; non mette in stage altri hunk. |
? | Mostra l'aiuto. |
Esempi
git add -p
# Attraversa gli hunk di ogni file modificato
git add -p src/auth.go
# Restringe a un file
# Dentro il prompt:
# Premi 's' per dividere un hunk grande in più piccoli
# Premi 'e' per modificare manualmente il testo dell'hunk
# Premi 'y' o 'n' per accettare o saltare
git diff --cached
# Rivedi cosa è ora in stage
Errori comuni
Modificare un hunk con e richiede di capire il formato diff unificato — aggiungere una riga significa che il nuovo file ce l'ha, rimuovere una riga di contesto significa che il nuovo file ne è privo. Errori qui possono produrre stato dell'index confuso. Verifica sempre con git diff --cached dopo.
Comandi correlati
git add, git stash -p, git restore -p, git checkout -p