Git stash: salvare temporaneamente le modifiche in Git

Con git stash potete salvare temporaneamente le vostre modifiche senza dover necessariamente eseguire un commit. In un progetto è possibile eseguire anche più stash.
Registra il tuo dominio
  • Certificato SSL Wildcard incluso
  • Registrazione di dominio sicura
  • Indirizzo e-mail professionale da 2 GB

Cos’è git stash?

Normalmente il lavoro in Git funziona in questo modo: apportate modifiche nel repository locale, svolgete i test del caso e se il risultato vi soddisfa, eseguite un commit verso il branch principale. Purtroppo, però, il lavoro non procede sempre in modo lineare. In alcuni casi potreste dovervi trovare a risolvere un bug situato su un altro branch, dovendo lasciare in sospeso il lavoro che state svolgendo sul branch attuale. In questo caso un commit non sarebbe la soluzione giusta, perché inviereste al repository centrale delle modifiche provvisorie, creando confusione nella cronologia. Il comando più adatto in questo caso è git stash: salva il lavoro iniziato, mettendolo temporaneamente da parte.
Questo riguarda tutte le modifiche per le quali non avete ancora eseguito un commit. Quando volete riprendere a lavorare sui file, li potete richiamare da git stash e proseguire in tutta tranquillità da dove eravate rimasti. In questo modo avete la sicurezza di conservare il lavoro già svolto senza perdere gli aggiornamenti e avete allo stesso tempo la libertà di lavorare in modo flessibile su altri branch. Se non usate git stash, al momento di eseguire git checkout potreste ricevere una notifica di errore o addirittura perdere le modifiche fatte.

Sintassi e funzionamento di git stash

Git stash serve anche a salvare modifiche intermedie sul branch attuale. Il comando di base si scrive come segue:
git stash
Di seguito vi mostriamo come funziona passo per passo con un semplice esempio. Immaginate di lavorare su due branch. In questo momento state effettuando delle modifiche sul branch principale, ma il vostro team vi avvisa che è necessario apportare dei cambiamenti anche nel secondo branch. Con git stash procedete come segue:
  1. Salvate le modifiche sul primo branch.
  2. Usate il comando git stash.
  3. Passate al secondo branch ed eseguite le modifiche necessarie.
  4. Eseguite un commit delle modifiche sul secondo branch.
  5. Tornate al primo branch.
  6. Ora usate il comando git stash pop per richiamare nuovamente gli aggiornamenti salvati in stash.

Altre opzioni che prevedono l’uso di git stash

Oltre alla variante illustrata qui sopra, git stash dispone di alcune altre opzioni. Queste le più importanti:
git stash -u
Tiene in considerazione anche i file che non sono stati tracciati.
git stash -a
Tiene in considerazione tutti i file ignorati o che non sono stati tracciati.
git stash -p
Vi consente di selezionare ed eseguire lo stash solo di determinati file.

Visualizzare la lista degli stash

Potete usare il comando git stash in modo illimitato, salvando quindi le modifiche in vari punti intermedi. A questo proposito avete la possibilità di visualizzare una lista dei git stash eseguiti mantenendo in tal modo la visione d’insieme dei salvataggi fatti. Il relativo comando è:
git stash list
I salvataggi vengono visualizzati in ordine cronologico inverso. L’ultimo git stash eseguito compare quindi al primo posto.
Normalmente i singoli stash vengono indicati semplicemente con “WIP” (work in progress). Tuttavia, poiché la presenza di più git stash può creare confusione, si consiglia di dotare i singoli stash di una descrizione chiara. Il relativo comando è:
git stash save "inserire qui la descrizione"

Git stash pop e apply

Il comando git stash pop serve a selezionare e a visualizzare l’ultimo git stash eseguito. Se invece desiderate accedere a un altro stash eseguito in precedenza, potete specificarlo con un argomento. Se ad esempio dovete visualizzare il secondo stash eseguito, inserite il valore 1 (si parte dallo zero). Questo il comando:
git stash pop stash@{1}
Un’alternativa a pop è apply. La differenza: pop cancella il relativo git stash dalla memoria e lo reintegra nel branch attuale. Con apply, invece, si mantiene lo stash nella memoria.

Riordinare git stash

Proprio perché si ha la possibilità di realizzare un numero illimitato di git stash, è importante riordinare di tanto in tanto la lista, in modo che questa non sia troppo confusa. Anche in questo caso potete usare due comandi:
git stash clear
Con questo comando svuotate tutta la lista dei git stash.
Se volete eliminare solo un determinato stash dalla lista, dovete usare il seguente comando:
git stash drop <stash_id></stash_id>

Richiamare i git stash

Potete visualizzare un riepilogo di tutti i git stash eseguiti tramite il seguente comando:
git stash show
Per ottenere una visione d’insieme delle modifiche fatte (il cosiddetto diff) usate questo comando:
git stash show -p

Uno strumento utile per lavorare con Git

Git stash facilita il lavoro e garantisce che le modifiche non terminate restino in memoria. Questo è solo uno dei comandi utili disponibili nel nostro articolo sui comandi Git. E se usate regolarmente il sistema di controllo di versione, vi consigliamo di leggere la nostra guida “Git Cheat Sheet scaricabile in PDF.
Consiglio
Deploy Now di IONOS è la soluzione migliore per il vostro sito web e app. Approfittate di una configurazione rapida, di flussi di lavoro ottimizzati e della massima scalabilità. A vostra disposizione troverete diverse tariffe vantaggiose.
Hai trovato questo articolo utile?
Per offrirti una migliore esperienza di navigazione online questo sito web usa dei cookie, propri e di terze parti. Continuando a navigare sul sito acconsenti all’utilizzo dei cookie. Scopri di più sull’uso dei cookie e sulla possibilità di modificarne le impostazioni o negare il consenso.
Page top