Git Stash
Ultimo aggiornamento
git stash mette da parte le modifiche non committate e riporta la directory di lavoro a uno stato pulito, così puoi cambiare branch o fare pull senza committare un lavoro a metà. Le modifiche finiscono in una pila che puoi riapplicare in seguito con git stash pop (applica e rimuove) o git stash apply (applica e mantiene).
Prova questi comandi nel terminal playground: una vera shell nel tuo browser, senza installare nulla.
Sintassi
| Comando | Cosa fa |
|---|---|
git stash | Mette da parte le modifiche tracciate, pulisce la directory di lavoro |
git stash -u | Include anche i file non tracciati |
git stash push -m "msg" | Stash con un messaggio descrittivo |
git stash push <file> | Stash di un solo file specifico |
git stash list | Elenca tutti gli stash |
git stash pop | Riapplica l'ultimo stash e lo rimuove |
git stash apply | Riapplica l'ultimo stash e lo mantiene |
git stash drop | Elimina l'ultimo stash |
git stash clear | Elimina tutti gli stash |
pop vs apply
| Comportamento | git stash pop | git stash apply |
|---|---|---|
| Riapplica le modifiche | Sì | Sì |
| Rimuove lo stash dopo | Sì | No |
| Adatto a riusare uno stash | No | Sì |
Domande frequenti su git stash
Cosa fa git stash?
Salva le modifiche non committate in una pila e riporta la directory di lavoro all'ultimo commit, lasciandoti una situazione pulita. Le modifiche non vanno perse: sono messe da parte e puoi riapplicarle in seguito con
git stash pop o git stash apply. È comodo quando devi cambiare branch ma non vuoi ancora fare il commit.Che differenza c'è tra git stash pop e git stash apply?
Entrambi riapplicano lo stash più recente alla directory di lavoro.
git stash pop poi rimuove anche quello stash dalla pila, mentre git stash apply lo lascia nella pila così puoi applicarlo di nuovo altrove. Usa pop per un ripristino una tantum, apply quando vuoi riusare lo stash.git stash include i file non tracciati?
Non per impostazione predefinita: un semplice
git stash mette da parte solo i file tracciati (modificati). Aggiungi -u (git stash -u) per includere i file non tracciati, oppure -a per includere anche quelli ignorati. Senza queste opzioni, i file nuovi su cui non hai fatto git add restano nella directory di lavoro.Come applico uno stash specifico?
Esegui
git stash list per vederli numerati come stash@{0}, stash@{1}, poi git stash apply stash@{1} (o pop) per riapplicarne uno in particolare. Ogni stash mostra anche il branch e il messaggio con cui è stato creato, così puoi distinguerli.Posso esercitarmi online?
Sì. Apri il terminal playground per eseguire
git stash in una vera shell nel tuo browser, senza installare nulla. Il corso interattivo gratuito di Git di Coddy spiega anche come gestire il lavoro in corso passo dopo passo.