Menu
Coddy logo textTech

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.

git stash mette da parte in una pila le modifiche non ancora salvate in un commit e pulisce la working tree; pop le riporta indietro in seguito.

Sintassi

ComandoCosa fa
git stashMette da parte le modifiche tracciate, pulisce la directory di lavoro
git stash -uInclude 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 listElenca tutti gli stash
git stash popRiapplica l'ultimo stash e lo rimuove
git stash applyRiapplica l'ultimo stash e lo mantiene
git stash dropElimina l'ultimo stash
git stash clearElimina tutti gli stash

pop vs apply

Comportamentogit stash popgit stash apply
Riapplica le modificheSìSì
Rimuove lo stash dopoSìNo
Adatto a riusare uno stashNoSì

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.
Illustrazione dei linguaggi di programmazione di Coddy

Impara Git con Coddy

INIZIA