Se lavoro sul ramo A e improvvisamente ho bisogno di lavorare sul ramo B prima di essere pronto con un commit sul ramo A, ho nascosto le mie modifiche su A, checkout B, faccio il mio lavoro lì, poi checkout A e applica lo stash.Quando dovrei usare git stash?
Se lavoro su A e voglio smettere di lavorare per il giorno, dovrei riporre il mio lavoro e poi applicarlo il giorno dopo, quando riprendo il mio lavoro, o dovrei semplicemente lasciare le cose come sono - non modificato file nella directory di lavoro. Non vedo perché avrei bisogno di usare lo stash in questo caso, eccetto se ci sono dei benefici per la sicurezza.
Inoltre, un altro scenario: lavoro sia a lavoro che a casa. Se non sono pronto con un commit quando voglio andare a casa, posso mettere da parte il mio lavoro, spingerlo a GitHub e poi tirarlo a casa?
No, 'git stash' non cambierà il ramo. Soprattutto non "ripristinerà" alcuna modifica impegnata. Rimuoverà (temporaneamente) tutte le modifiche non salvate sui tuoi file. - Potrebbe sembrare schizzinoso, ma questo tipo di parole ha un significato molto speciale nel contesto di git. Non dovresti davvero mescolarli. – michas
Grazie per averlo indicato. Ho cambiato la mia risposta di conseguenza. – Severin
In git un "ramo" è definito come una serie di commit. 'git stash' non toccherà nessun commit e quindi non modificherà alcun ramo. Non "rimuoverà" nulla da un ramo e non lo "resetterà" in alcun modo. Il ramo rimane lo stesso, solo i file nell'albero di lavoro cambiano. - Queste sono due cose completamente diverse. – michas