In Magit, qual è la differenza tra una "scorta" e una "istantanea"?


17

Il manuale dell'utente di Magit include due serie di comandi "stashing": i comandi in minuscolo salvano uno stash e i comandi in maiuscolo salvano uno snapshot . Dopo aver consultato Google e Stack Overflow e la git-stash(1)pagina man, non so ancora quale sia la differenza.

Qual è la differenza?


1
La mia comprensione è che stashripristinerà (annullerà) anche le modifiche e snapshotlascerà le modifiche nell'area di lavoro (potrebbe essere utile se hai intenzione di riorganizzare i commit prima di premere).
wvxvw,

Risposte:


24

Entrambe le varianti "stash" e "snapshot" creano gli stessi oggetti stash. La differenza è che quando si crea uno snapshot, le modifiche nascoste non vengono rimosse dai file nella struttura di lavoro e / o nell'indice. (Proprio come quando scatti un'istantanea dei tuoi amici che si divertono - anche questo non li fa sparire ;-)

Questo è inteso come un meccanismo di backup di sorta. Supponiamo che tu stia eseguendo un refactoring complicato e hai appena testato e il codice modificato sembra ancora funzionare ma non hai ancora finito. Ora sarebbe un buon momento per creare un'istantanea, in modo che tu abbia qualcosa su cui tornare se sbagli in un secondo momento.

Ovviamente potresti semplicemente creare un commit "wip" temporaneo, proprio sul ramo su cui stai lavorando, per ottenere lo stesso risultato. Di solito è quello che faccio.

E puoi anche automatizzare il processo di registrazione dei lavori in corso abilitando le modalità Wip . Ho queste modalità abilitate come rete di sicurezza, ma creo comunque i commit di pulizia direttamente sul ramo corrente o creo un'istantanea. Questi sono più facili da lavorare rispetto ai riferimenti di pulizia.

Si noti che Magit viene fornito con un'implementazione di stash scritta in Elisp. Ciò era necessario per implementare le varianti dello snapshot e le varianti stash solo per worktree e solo indice. Git non fornisce nessuna di queste varianti.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.