Git Stash
Ostatnia aktualizacja
git stash odkłada twoje niezatwierdzone zmiany na bok i przywraca katalog roboczy do czystego stanu, dzięki czemu możesz zmienić gałąź albo zrobić pull bez zatwierdzania niedokończonej pracy. Zmiany trafiają na stos, z którego możesz je później przywrócić przez git stash pop (nałożenie i usunięcie) albo git stash apply (nałożenie i zachowanie).
Wypróbuj te polecenia w terminalu online: prawdziwa powłoka w przeglądarce, bez żadnej instalacji.
Składnia
| Polecenie | Co robi |
|---|---|
git stash | Odkłada zmiany w śledzonych plikach, czyści katalog roboczy |
git stash -u | Odkłada także nieśledzone pliki |
git stash push -m "msg" | Stash z opisową wiadomością |
git stash push <file> | Odkłada tylko wskazany plik |
git stash list | Wyświetla wszystkie stashe |
git stash pop | Nakłada ostatni stash i go usuwa |
git stash apply | Nakłada ostatni stash i go zachowuje |
git stash drop | Usuwa ostatni stash |
git stash clear | Usuwa wszystkie stashe |
pop vs apply
| Zachowanie | git stash pop | git stash apply |
|---|---|---|
| Przywraca zmiany | Tak | Tak |
| Usuwa potem stash | Tak | Nie |
| Dobre do ponownego użycia stasha | Nie | Tak |
Najczęstsze pytania o git stash
Co robi git stash?
Zapisuje twoje niezatwierdzone zmiany na stosie i resetuje katalog roboczy do ostatniego commita, dając ci czysty start. Zmiany nie przepadają: są odłożone i możesz je później przywrócić przez
git stash pop albo git stash apply. Przydaje się, gdy trzeba zmienić gałąź, a praca nie jest jeszcze gotowa do commita.Czym różni się git stash pop od git stash apply?
Oba nakładają ostatni stash na katalog roboczy.
git stash pop dodatkowo usuwa potem ten stash ze stosu, a git stash apply zostawia go na stosie, żeby można go było nałożyć jeszcze gdzie indziej. Używaj pop do jednorazowego przywrócenia, a apply, gdy chcesz użyć stasha ponownie.Czy git stash obejmuje nieśledzone pliki?
Domyślnie nie: zwykłe
git stash odkłada tylko śledzone (zmienione) pliki. Dodaj -u (git stash -u), żeby uwzględnić nieśledzone pliki, albo -a, żeby dołączyć też pliki ignorowane. Bez tych flag nowe pliki, których nie dodano przez git add, zostają w katalogu roboczym.Jak nałożyć konkretny stash?
Uruchom
git stash list, żeby zobaczyć je ponumerowane jako stash@{0}, stash@{1}, a potem git stash apply stash@{1} (albo pop), żeby przywrócić wybrany. Przy każdym stashu widać też gałąź i wiadomość, z którymi go utworzono, więc łatwo je odróżnić.Czy mogę to przećwiczyć online?
Tak. Otwórz terminal online i uruchom
git stash w prawdziwej powłoce w przeglądarce, bez żadnej instalacji. Darmowy interaktywny kurs Git w Coddy też krok po kroku omawia zarządzanie pracą w toku.