Punti di ripristino e stash in Git
I blocchi sono casi diversi, non un unico script. Scegli il caso del tuo repository. Sostituisci branch, percorsi e VERIFIED_COMMIT prima dell’uso. I comandi di annullamento valgono solo per la propria operazione attiva; non eseguire entrambe le alternative.
Risposta breve
I punti di ripristino FluxGit registrano stati per recuperare operazioni di cronologia coperte. Uno stash manuale accantona modifiche locali: è un percorso distinto.
Esempio e condizioni
Il tutorial G12 cambia branch con modifiche tracked pendenti. I file untracked rimangono nella directory, salvo inclusione esplicita.
Controlla prima di modificare
Esamina git status --short e git diff. Decidi cosa conservare prima del cambio di branch; una directory pulita non è un backup permanente.
git status --short
git diffConserva un riferimento o checkout separato
Crea uno stash manuale con un messaggio riconoscibile. git stash push salva modifiche tracked; usa -u solo per includere anche file untracked.
git stash push -m "school/manual-before-switch"
git stash listPrimo percorso
Controlla git stash list e passa al branch desiderato. Quando torni, rivedi il contesto prima di applicare la voce scelta.
git switch target-branchScegli consapevolmente l’altro risultato
git stash apply conserva la voce. git stash pop la elimina solo dopo un’applicazione riuscita; in caso di conflitto la voce resta disponibile.
git stash show --patch 'stash@{0}'
git stash apply 'stash@{0}'Limiti ed eccezioni
I punti automatici coprono reset, rebase, cherry-pick, revert e merge nei percorsi protetti. Discard e clean non creano un Flux restore point universale.
Conflitti e pulizia
In caso di conflitto esamina i file e risolvilo consapevolmente. Non ripetere pop né eliminare la voce per nascondere lavoro pendente.
Verifica il risultato
Verifica file, indice e test dopo l’applicazione dello stash. Elimina una voce solo dopo aver controllato che il lavoro desiderato sia conservato.
git status --short
git diff
git diff --cachedDomande frequenti
Uno stash non viene pubblicato automaticamente con push e non sostituisce un backup. Il recupero richiede che lo stato locale pertinente resti disponibile.
Esamina l’operazione in FluxGit
Safety Timeline unisce movimenti del reflog, rischi e punti di ripristino. I dati dei punti restano locali; usa anteprima e contesto di recupero specifici dell’operazione.
Riferimenti ufficiali Git
Cambiare branch con lavoro incompleto: git stash, in modo visivo
Conserva una modifica tracciata con git stash, assegnale un nome, cambia branch e torna per usare pop. Scopri perché i file non tracciati rimangono e la differenza tra apply e un pop riuscito. Include i comandi del terminale.
Guarda su YouTube — si apre una nuova scheda
Registrato in un repository di prova. Narrazione in inglese e sottotitoli in italiano.
Leggi la trascrizione della narrazione
- Sei nel mezzo di una modifica e devi guardare subito un altro branch. Non è pronta per il commit, e non vuoi perderla.
- Ecco la modifica incompleta, in app.py.
- Uno stash conserva le modifiche tracciate. Qui salva la modifica di app.py e la rimuove dalla cartella di lavoro. I file non tracciati restano sul disco. Un pop riuscito ripristina la modifica e rimuove la relativa voce di stash.
- Scegli Stash current changes e assegna un nome che riconoscerai più tardi.
- Passa all'altro branch. La modifica tracciata è nello stash. Il file non tracciato rimane nella cartella.
- Hai finito lì. Torna su main.
- Esegui pop sullo stash. La modifica è tornata in app.py, e lo stash è scomparso.
- Apply o pop? Apply ripristina le modifiche e mantiene la voce di stash. Pop rimuove la voce solo se le modifiche vengono applicate correttamente. In caso di conflitti, lo stash viene conservato.
- Nel terminale: git stash push con un messaggio, cambia branch e torna, poi git stash pop.
- Riepilogo. Il lavoro incompleto va su uno scaffale, non in un commit a metà. Prossima lezione: riordinare i commit prima della pull request.