Guide Git
Git stash: salva le modifiche, cambia ramo e ripristina il tuo lavoro
Una soluzione urgente interrompe il lavoro incompiuto. Salvalo con Git stash, ripristina la voce corretta in un secondo momento e comprendi l'applicazione, il pop e i conflitti prima di fare clic. Include una procedura dettagliata visiva GitTree.
Git stash salva le modifiche non salvate in modo che tu possa lavorare su qualcos'altro e poi ripristinare tali modifiche. Inizia con git stash push -m "WIP: checkout form"; ripristina con git stash apply quando desideri conservare la voce salvata o git stash pop quando desideri rimuoverla dopo un ripristino riuscito. Aggiungi -u quando all'opera appartengono anche file nuovi e non tracciati.
Questa guida utilizza come esempio un'interruzione del modulo di pagamento: mettere in pausa il modulo, correggere un bug di produzione su un altro ramo, quindi tornare al modulo. La procedura dettagliata visiva utilizza GitTree, il client che creiamo per macOS, Windows e Linux. La gestione della scorta è inclusa nel piano Free; le build ufficiali attuali richiedono l'accesso.
Quando utilizzare stash, un commit o un worktree
| Situazione | Utilizzare | Motivo |
|---|---|---|
| Una breve interruzione con modifiche incompiute | Scorta | Cancella temporaneamente i file senza aggiungere un normale commit del ramo |
| Lavoro di cui devi condividere o eseguire il backup da remoto | Effettua il commit e il push al ramo appropriato | Le scorte rimangono locali; un push normale non li carica |
| Due attività che desideri aprire contemporaneamente | Albero di lavoro | Ogni attività riceve la propria cartella di lavoro |
Per attività parallele più lunghe, utilizza la guida all'albero di lavoro. Una scorta è un comodo spazio di archiviazione temporaneo, ma non dovrebbe essere l'unico backup di lavoro prezioso. Assegna un nome alle voci dopo l'attività, poiché stash@{0} indica l'ultima voce e i numeri cambiano man mano che l'elenco cambia.
Salvare le modifiche e cambiare ramo: un esempio completo
Innanzitutto controlla git status: una scorta predefinita include le modifiche ai file tracciati, comprese le modifiche graduali, ma lascia intatti i file non tracciati e ignorati. In questo esempio il modulo include un file appena creato, quindi utilizza -u. Questi comandi presuppongono che feature/checkout e hotfix/payment esistano già; sostituisci i nomi delle tue filiali.
git status
git stash push -u -m "WIP: checkout form"
git stash list
git status
git switch hotfix/paymentCompletare, testare e confermare l'hotfix prima di ritornare. Controlla l'elenco delle scorte e le relative differenze prima di fare domanda: nel frattempo un'altra attività potrebbe aver creato una voce più recente. Citare un selettore come "stash@{0}" impedisce inoltre alle shell di interpretarne i caratteri speciali.
git switch feature/checkout
git stash list
git stash show -p --include-untracked "stash@{0}"
git stash apply "stash@{0}"
git statusGit stash apply vs pop: quale scegliere?
| Comando | Ripristina i file | Mantiene la scorta |
|---|---|---|
git stash apply "stash@{0}" | Sì | Sì |
git stash pop "stash@{0}" | Sì | No, dopo il successo; sì, se i conflitti lo fermano |
git stash apply --index "stash@{0}" | Sì e tenta di ripristinare lo stato di gestione temporanea | Sì |
Per un'importante modifica non completata, applicala prima, rivedila e testala, quindi elimina la voce salvata una volta eseguito il lavoro ripristinato. L'applicazione due volte può creare conflitti o ripetere modifiche; ispezionare i file di lavoro prima di riprovare. Né apply né pop inviano nulla a un server.
Conserva file non tracciati, file specifici o modifiche graduali
git stash push -u -m "WIP: include new files"
git stash push -m "WIP: checkout only" -- src/checkout.ts
git stash push --staged -m "WIP: staged changes only"
git stash push --keep-index -m "WIP: keep staged work ready"Questi sono comandi alternativi, non una sequenza da eseguire insieme. Un percorso dopo -- limita lo stash a quel percorso. --staged salva solo le modifiche graduali; --keep-index lascia in vigore le modifiche graduali in modo che tu possa testarle o confermarle mentre accantoni altre modifiche. Risolvono diversi problemi. Le installazioni Git precedenti potrebbero non supportare --staged; controlla git --version e la guida per la versione installata.
Come archiviare e ripristinare le modifiche in GitTree
Ispezionare il lavoro in corso
Apri la riga
// WIP, esamina i file e scegli la scheda Stash accanto a Commit.Scegli l'ambito
Seleziona Tutte le modifiche, Solo modifiche graduali o Solo i file selezionati. Abilita Includi file non tracciati quando nuovi file appartengono all'attività.
Assegnagli un nome per l'attività
Inserisci un messaggio come WIP: modulo di pagamento, quindi scegli Stash. Ispezionare eventuali file lasciati prima di cambiare ramo; una scorta parziale non cancella tutto il lavoro.
Anteprima prima del ripristino
Nella sezione Stash, fai clic con il pulsante destro del mouse sulla voce corretta e scegli Mostra Stash per ispezionarne i file e le differenze. Verificare che il ramo ricevente sia corretto.
Applicare, rivedere e finire
Scegli Applica Stash per conservare la voce o Pop Stash per rimuoverla dopo il successo. Rivedi le modifiche, esegui i test e conferma quando sei pronto.

Vuoi seguire questi passaggi con il tuo repository? Scarica GitTree, accedi e apri la cartella del repository. Le tue scorte esistenti rimangono normali scorte Git, visibili anche dal terminale.
Come risolvere i conflitti git stash pop
Una scorta può entrare in conflitto quando il ramo di destinazione ha modificato le stesse righe. Un pop fallito mantiene la scorta, ma alcune modifiche potrebbero essere già state applicate. Non farlo scoppiare ripetutamente. Esegui git status, risolvi ogni file non unito e metti in scena solo le risoluzioni previste. La guida ai conflitti di unione spiega i marcatori e l'editor a tre vie.
git status
git diff --name-only --diff-filter=U
# Edit and test each conflicted file, then stage its resolution:
git add -- src/checkout.ts
git diff --cached
git statusNon esiste git stash --continue o git stash --abort. Una volta risolti i file, rivedili ed esegui il commit normalmente. Se vuoi abbandonare il tentativo, conserva tutto il lavoro esistente prima dell'applicazione e ispeziona ogni percorso modificato prima di scartare qualsiasi cosa. Un hard reset generale può cancellare le modifiche non correlate. Quando la destinazione si è allontanata troppo, git stash branch rescue/checkout "stash@{0}" si ripristina su un nuovo ramo alla base originale; un'operazione riuscita rimuove quella voce di scorta.
Elimina una scorta solo dopo aver controllato il risultato
Utilizza nuovamente git stash list prima di git stash drop "stash@{0}": la posizione potrebbe essere cambiata. git stash clear rimuove l'intero elenco. Il recupero di una scorta caduta in Git semplice è incerto e dipende dal fatto che i suoi oggetti esistano ancora; non fare affidamento sul trovarlo più tardi. In GitTree, Elimina Stash conserva la voce eliminata negli snapshot di ripristino in modo che Annulla possa ripristinarla. Questo ripristino specifico dell'app non rende l'eliminazione del terminale un'azione recuperabile garantita. Per opzioni di ripristino più ampie, consulta annullamento degli errori Git.
Domande frequenti
Git stash salva i file non tracciati?
Non per impostazione predefinita. Utilizza git stash push -u o Includi file non tracciati in GitTree. I file ignorati richiedono una scelta separata; -u non li include.
Posso applicare una scorta a un altro ramo?
SÌ. Controlla la filiale di destinazione e applica la voce lì. Rivedi prima la sua differenza: la scorta potrebbe dipendere dal codice assente da quel ramo.
Git stash pop elimina la scorta in caso di conflitto?
No. Git conserva la voce quando la sua applicazione è in conflitto. Risolvi e verifica i file di lavoro prima di rimuovere tu stesso la voce.
Una scorta è stata spostata a GitHub?
Un normale push git non carica gli stash. Impegna il lavoro su un ramo appropriato ed esegui il push di quel ramo se hai bisogno di una copia remota.
La gestione della scorta di GitTree è gratuita?
Sì, la gestione della scorta fa parte del piano gratuito. Le attuali build ufficiali richiedono l'accesso; GitTree Pro non è richiesto per questo flusso di lavoro Git locale.
Fonti
Le affermazioni su altri prodotti sono state confrontate con le rispettive pagine ufficiali in data 28 ottobre 2026. Cambiano prezzi e caratteristiche; le pagine dei venditori sono la fonte della verità.