Menu
Coddy logo textTech

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.

git stash odkłada niezatwierdzone zmiany na stos i czyści katalog roboczy; pop przywraca je później.

Składnia

PolecenieCo robi
git stashOdkłada zmiany w śledzonych plikach, czyści katalog roboczy
git stash -uOdkł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 listWyświetla wszystkie stashe
git stash popNakłada ostatni stash i go usuwa
git stash applyNakłada ostatni stash i go zachowuje
git stash dropUsuwa ostatni stash
git stash clearUsuwa wszystkie stashe

pop vs apply

Zachowaniegit stash popgit stash apply
Przywraca zmianyTakTak
Usuwa potem stashTakNie
Dobre do ponownego użycia stashaNieTak

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.
Ilustracja języków programowania w Coddy

Ucz się Gita z Coddy

ZACZNIJ