So che StackOverflow non è il posto giusto per risposte basate sull'opinione, ma in realtà ho una buona opinione su quando accantonare le modifiche con una scorta.
Non vuoi eseguire modifiche sperimentali
Quando si apportano modifiche al proprio spazio di lavoro / albero di lavoro, se è necessario eseguire operazioni basate su rami come unione, push, fetch o pull, è necessario essere a un punto di commit pulito. Quindi, se hai modifiche allo spazio di lavoro, devi eseguirne il commit. Ma cosa succede se non vuoi impegnarli? E se fossero sperimentali? Qualcosa che non vuoi far parte della tua cronologia dei commit? Qualcosa che non vuoi che gli altri vedano quando esegui il push su GitHub?
Non vuoi perdere le modifiche locali con un hard reset
In tal caso, puoi eseguire un hard reset. Ma se esegui un hard reset perderai tutte le modifiche dell'albero di lavoro locale perché tutto viene sovrascritto al punto in cui si trovava al momento dell'ultimo commit e perderai tutte le modifiche.
Quindi, per quanto riguarda la risposta di 'quando dovresti stash', la risposta è quando devi tornare a un punto di commit pulito con un albero di lavoro / indice / commit sincronizzato, ma non vuoi perdere le modifiche locali in il processo. Accantona le tue modifiche in una scorta e sei a posto.
E una volta che hai fatto la tua scorta e poi unito o tirato o spinto, puoi semplicemente mettere da parte pop o applicare e sei tornato da dove hai iniziato.
Git stash e GitHub
GitHub aggiunge costantemente nuove funzionalità, ma al momento c'è un modo per salvare una scorta lì. Ancora una volta, l'idea di una scorta è che sia locale e privata. Nessun altro può sbirciare nella tua scorta senza accesso fisico alla tua workstation. Un po 'allo stesso modo in cui git reflog è privato con git log è pubblico. Probabilmente non sarebbe privato se fosse inviato a GitHub.
Un trucco potrebbe essere quello di fare un diff del tuo spazio di lavoro, controllare il diff nel tuo repository git, eseguire il commit e poi spingere. Quindi puoi fare un tiro da casa, ottenere il diff e poi rilassarlo. Ma questo è un modo piuttosto complicato per ottenere quei risultati.
git diff > git-dif-file.diff