L'indice/stage/cache sono la stessa cosa - per quanto riguarda il motivo per cui così tanti termini, penso che l'indice fosse il termine "originale", ma la gente lo trovava confuso, quindi sono stati introdotti gli altri termini. E sono d'accordo sul fatto che a volte le cose siano un po 'confuse all'inizio.
La funzione stash
di git è un modo per archiviare il lavoro "in corso" che non si desidera eseguire in questo momento in un oggetto di commit che viene archiviato in una particolare directory/database di memorizzazione. Il comando di base stash
memorizzerà le modifiche non salvate apportate alla directory di lavoro (entrambe le modifiche memorizzate nella cache/staged e uncached/nonstage) e quindi ripristineranno la directory di lavoro su HEAD.
Non è realmente correlato all'indice/stage/cache eccetto per il fatto che memorizzerà le modifiche non salvate presenti nella cache.
Ciò consente di salvare rapidamente lo stato di una directory di lavoro sporca e di un indice in modo da poter eseguire lavori diversi in un ambiente pulito. Successivamente è possibile recuperare le informazioni nell'oggetto stash e applicarle alla propria directory di lavoro (anche se la stessa directory di lavoro si trova in uno stato diverso).
La pagina di manuale ufficiale git stash
ha dettagli abbastanza buoni, pur rimanendo comprensibile. Ha anche dei buoni esempi di come si può usare stash
.
fonte
2010-08-18 21:25:59
Non dimenticare "aggiunto", come Android Studio utilizza nell'interfaccia utente di controllo versione Git. –
@ScottBiggs Cosa c'è "aggiunto"? – allyourcode
Sono ancora un novizio sconcertato con Git. "Aggiungi" cosa fa prima di un "commit", che sono anche confuso con "Stash" (per aggiungere un altro termine alla zuppa). –