Wiem, że StackOverflow nie jest miejscem na odpowiedzi oparte na opiniach, ale tak naprawdę mam dobrą opinię na temat tego, kiedy odkładać zmiany na półkę.
Nie chcesz wprowadzać zmian eksperymentalnych
Kiedy wprowadzasz zmiany w swoim obszarze roboczym / drzewie roboczym, jeśli musisz wykonać jakiekolwiek operacje oparte na gałęzi, takie jak scalanie, wypychanie, pobieranie lub ściąganie, musisz znajdować się w czystym punkcie zatwierdzenia. Więc jeśli masz zmiany w obszarze roboczym, musisz je zatwierdzić. Ale co, jeśli nie chcesz ich popełnić? A jeśli są eksperymentalne? Coś, czego nie chcesz, aby było częścią Twojej historii zmian? Coś, czego nie chcesz, aby inni widzieli, gdy pchasz na GitHub?
Nie chcesz utracić lokalnych zmian podczas twardego resetu
W takim przypadku możesz wykonać twardy reset. Ale jeśli wykonasz twardy reset, utracisz wszystkie zmiany lokalnego drzewa roboczego, ponieważ wszystko zostanie nadpisane do miejsca, w którym znajdowało się w momencie ostatniego zatwierdzenia, i utracisz wszystkie zmiany.
Tak więc, jeśli chodzi o odpowiedź `` kiedy powinieneś schować '', odpowiedź brzmi, gdy musisz wrócić do czystego punktu zatwierdzenia ze zsynchronizowanym drzewem roboczym / indeksem / zatwierdzeniem, ale nie chcesz stracić lokalnych zmian w proces. Po prostu odłóż zmiany do skrytki i wszystko w porządku.
A kiedy już skończysz skrytkę, a następnie scalisz, wyciągniesz lub wypchniesz, możesz po prostu schować pop lub zastosować i wrócisz do miejsca, od którego zacząłeś.
Git stash i GitHub
GitHub stale dodaje nowe funkcje, ale w tej chwili jest teraz sposób na zapisanie tam skrytki. Ponownie, idea skrytki polega na tym, że jest ona lokalna i prywatna. Nikt inny nie może zajrzeć do twojego schowka bez fizycznego dostępu do twojej stacji roboczej. W ten sam sposób git reflog jest prywatny, a dziennik git jest publiczny. Prawdopodobnie nie byłby prywatny, gdyby został przeniesiony do GitHub.
Jedna sztuczka może polegać na zrobieniu różnicy w obszarze roboczym, sprawdzeniu tego pliku w repozytorium git, zatwierdzeniu, a następnie wypchnięciu. Następnie możesz wyciągnąć z domu, pobrać różnicę, a następnie ją rozwinąć. Ale to dość niechlujny sposób na osiągnięcie takich wyników.
git diff > git-dif-file.diff