Il caso per lo staging in modalita patch
Il git add predefinito mette in stage interi file. Le modifiche reali raramente arrivano in unita di file completi.
Invocare la modalita patch
git add -p
git add -p src/checkout.js
Stage this hunk [y,n,q,a,d,s,e,?]?
I prompt che contano
y- stage di questo hunk.n- salta questo hunk.s- divide in hunk piu piccoli.e- modifica l'hunk a mano.q- esce.a- stage di questo e tutti i successivi nel file.d- salta questo e tutti i successivi nel file.
Editing manuale degli hunk
Premere e apre l'hunk nell'editor. Per escludere un'aggiunta, eliminare la riga. Per escludere una rimozione, cambiare il - iniziale in uno spazio.
Un workflow reale
git diff src/cart.js
git add -p src/cart.js
git diff --cached src/cart.js
git diff src/cart.js
git commit -m "Fix cart total off-by-one"
Modalita patch per altri comandi
git reset -p
git checkout -p
git stash -p
git restore -p
GUI e modalita patch
Strumenti GUI come git gui, GitKraken, Fork e il pannello Source Control di VS Code offrono staging a livello di riga.