Spis treści:

Jak szybko zarabiać w IT w 2025 roku? Spróbuj swoich sił w różnych obszarach IT i zrób pierwszy krok w kierunku nowego zawodu zdalnie!
Dowiedz się więcejPolecenie git stash to ważne narzędzie do pracy z systemami kontroli wersji. Umożliwia tymczasowe zapisywanie zmian w katalogu roboczym bez konieczności ich zatwierdzania w repozytorium. Jest to szczególnie przydatne, gdy trzeba przełączyć się na inną gałąź lub wykonać inne zadania bez utraty bieżącej pracy. Git stash nie tylko zapisuje zmiany, ale także je przywraca, umożliwiając łatwe zarządzanie wieloma zadaniami jednocześnie. Korzystanie z tego polecenia pomoże Ci zwiększyć wydajność, uporządkować proces rozwoju i uniknąć kłopotów z niedokończonymi zmianami. Wykorzystaj git stash w swojej praktyce już dziś, aby zarządzanie projektami było bardziej elastyczne i wygodne.
Po co „odkładać” kod?
Wyobraź sobie, że siadasz rano przed komputerem i znajdujesz nową wiadomość: „Hej, Andriej! Czy możesz naprawić błąd za pomocą przycisku na stronie głównej? Wszystkie szczegóły są już w zadaniu. Zaleca się, aby ukończyć pracę do wieczora”. Zaczynasz pracę nad zadaniem.
Podczas testowania hipotez w kodzie pojawia się nowe zadanie: pilny błąd serwera, który uniemożliwia działanie systemu płatności na stronie, wymaga naprawy. Otrzymujesz informację, że musisz natychmiast skupić się na rozwiązaniu tego problemu. Jednak jesteś już blisko ukończenia bieżącego zadania i nie chcesz stracić całego napisanego kodu.

Tam Istnieje kilka sposobów rozwiązania tego problemu. Jednym z rozwiązań jest utworzenie nowej gałęzi dla wszystkich zmian i zatwierdzenie ich. Może to jednak spowodować, że repozytorium projektu będzie miało wiele gałęzi o niejasnych nazwach, takich jak TEST 1, BUTTON FIX lub „DO NOT TOUCH!!!”. To może zamienić repozytorium w niemożliwy do opanowania bałagan, utrudniając jego utrzymanie. Aby tego uniknąć, zaleca się trzymanie się przejrzystego systemu nazewnictwa gałęzi i regularne usuwanie przestarzałych. Pomoże to utrzymać porządek i usprawni proces rozwoju.
Drugim rozwiązaniem jest skopiowanie wszystkich plików, w których wprowadzono zmiany, i zmiana ich nazw, aby ułatwić nawigację, na przykład poprzez dodanie sufiksu „_BUG-FIX” do nazwy pliku. Jednak ta metoda wymaga powtarzania tych kroków dla każdego pliku, co czyni ją dość niewygodną. Z tego powodu ta opcja również nie jest optymalna.

Aby poprawić użyteczność pracy z Gitem, opracowano polecenie git stash. Automatyzuje proces tymczasowego przechowywania zmian w katalogu roboczym, co upraszcza zarządzanie kodem i zwiększa wydajność rozwoju. Dzięki git stash możesz zapisywać niedokończone zmiany i wracać do nich później bez zakłócania bieżącego przepływu pracy. Jest to szczególnie przydatne, gdy musisz przełączać się między gałęziami lub pracować nad kilkoma zadaniami jednocześnie.
Do czego służy git stash?
Polecenie git stash znacznie ułatwia zarządzanie zmianami w kodzie. Pozwala ono szybko zapisać wszystkie bieżące edycje w archiwum, ukrywając je, dzięki czemu możesz przełączyć się na inną gałąź i kontynuować pracę bez obciążenia niezapisanymi zmianami. Jest to szczególnie przydatne, gdy musisz tymczasowo odłożyć jedno zadanie i przejść do innego bez utraty postępów. Korzystanie z git stash pomaga utrzymać porządek w projekcie i usprawnia proces rozwoju.
Zmiany nie są zatwierdzane w repozytorium, ale zapisywane w lokalnym repozytorium na Twoim komputerze. Funkcja git stash pozwala na tymczasowe odłożenie zmian bez ich zatwierdzenia w historii zatwierdzeń. Jest to przydatne, gdy trzeba przełączać się między gałęziami bez utraty bieżącego postępu. Wróćmy do naszego przykładu. Zdaliśmy sobie sprawę, że musimy zapisać wszystkie zmiany i przejść do naprawy innego pilnego błędu. Zaczynajmy. Kod nie jest jeszcze ukończony, więc zatwierdzanie go w gałęzi głównej nie ma sensu. W tej sytuacji należy zapisać zmiany lokalnie. W tym celu używamy polecenia git stash save. To polecenie pozwala na tymczasowe zapisanie zmian w katalogu roboczym i przywrócenie czystego stanu repozytorium. Jest to wygodne, gdy trzeba przełączyć się na inną gałąź lub wykonać inne czynności bez utraty bieżącej pracy. Po zakończeniu pracy z kodem można przywrócić zapisane zmiany za pomocą polecenia git stash apply. Początkowo zmiany zostały wprowadzone w plikach index.html i style.css. Po uruchomieniu polecenia git stash save wszystkie te zmiany zostają tymczasowo utracone, ale ten stan nie jest trwały. Zawsze możesz je przywrócić w przyszłości.
Teraz wszystkie zmiany są zapisywane w lokalnym repozytorium, tworząc stan projektu podobny do tego sprzed rozpoczęcia naprawiania błędów. To lokalne archiwum może przechowywać nieograniczoną liczbę zapisów. Wszystkie będą prezentowane na liście, która działa na zasadzie „kto pierwszy, ten lepszy”. Zapewnia to wygodny dostęp do poprzednich wersji projektu i pozwala na szybkie przywrócenie jego stanu w razie potrzeby.

Możemy tworzyć wiele zapisów w repozytorium, ale jak następnie określić, który zapis musimy pobrać? Ważne jest, aby móc oznaczyć wszystkie te zapisy. Aby to zrobić, wystarczy podać nazwę zapisu w cudzysłowie. Ułatwi to identyfikację i zarządzanie zapisanymi danymi, co znacznie uprości proces ich wyszukiwania i korzystania z nich w przyszłości.
Podczas pracy nad projektem może zaistnieć potrzeba tymczasowego ukrycia zmian, w tym nowych plików, które nie zostały początkowo dodane do repozytorium. W tym celu należy użyć polecenia git stash save z parametrem include-untracked lub skróconej wersji -u. To polecenie zapisuje aktualny stan katalogu roboczego i indeksu, w tym wszystkie nieśledzone pliki, co upraszcza zarządzanie zmianami w projekcie bez konieczności ich zatwierdzania. Korzystanie z tego polecenia pomaga zachować porządek w repozytorium i ułatwia dalszą pracę z kodem.
Aby dodać wszystkie ignorowane pliki do lokalnego repozytorium, użyj opcji —all lub -a. Opcja ta pozwala uwzględnić w zatwierdzaniu pliki, które są zazwyczaj ignorowane przez systemy kontroli wersji. Jest to szczególnie przydatne, gdy trzeba zachować wszystkie zmiany, w tym pliki tymczasowe i konfiguracyjne, które mogą być wykluczone z normalnego procesu zatwierdzania. Użycie tej opcji zapewnia kompletne archiwum projektu, w tym wszystkie aspekty jego struktury.
Istnieje bardziej zaawansowana metoda dodawania pojedynczych plików do Gita za pomocą polecenia git stash i opcji —patch (lub -p). Po użyciu tej opcji Git sekwencyjnie prezentuje wszystkie pliki ze zmianami i pyta, czy dodać je do lokalnego repozytorium. Takie podejście pozwala precyzyjniej kontrolować zawartość, którą chcesz zachować, i uniknąć niepotrzebnych zmian w katalogu roboczym. Użycie polecenia git stash z opcją —patch— Opcja ta jest wygodnym narzędziem dla programistów, pozwalającym im wybierać tylko niezbędne zmiany i zachować przejrzystą historię zatwierdzania.
Aby rozszyfrować znaczenie wszystkich tych liter podczas wyboru, wystarczy wpisać ? w polu wyszukiwania, a pojawi się niezbędna pomoc. Pozwoli to na szybkie uzyskanie informacji i podjęcie świadomego wyboru.
Głównymi dostępnymi opcjami w tej sytuacji są «y» i «n». Wybranie «y» oznacza, że plik zostanie odroczony, podczas gdy «n» oznacza, że plik nie zostanie odroczony.
Teraz, gdy opanowaliśmy zapisywanie zmian lokalnie, czas nauczyć się, jak przeglądać już zapisane dane w lokalnym repozytorium.
Rozpoczęliśmy pilne zadanie i pomyślnie je ukończyliśmy. Teraz czas powrócić do naszych zmian. Zanim przejdziemy dalej, musimy sprawdzić, co dokładnie zapisaliśmy w naszym lokalnym repozytorium. Aby to zrobić, użyjemy polecenia git stash list. To polecenie wyświetla listę wszystkich zapisanych zmian, umożliwiając efektywne zarządzanie nimi i przywracanie ich.
Polecenie Git stash wyświetla wszystkie skrytki i ich opisy, które są ujęte w cudzysłów po poleceniu git stash save. Na tej liście możemy również zobaczyć skrytkę o nazwie „WIP on main: 4532d67 our new homepage”. Ta nazwa została przypisana domyślnie, ponieważ nie określiliśmy jej w cudzysłowie. Używanie opisów dla skrytek ułatwia nawigację po historii zmian i zarządzanie stanem projektu.
Przyjrzyjmy się teraz bliżej zawartości naszych skrytek, a następnie zastosujmy je w projekcie. W tym celu użyjemy polecenia git stash show. To polecenie pozwala nam przejrzeć zmiany zapisane w skrytce, dając nam szansę na ocenę tego, co zapisaliśmy, przed kontynuowaniem.
Ta skrytka zawiera dwie zmiany w pliku index.html i cztery zmiany w pliku style.css. Te zmiany wynikają z pracy, nad którą pracowaliśmy, zanim coś pilniejszego wymagało naszej uwagi.
Uruchamiając to polecenie, uzyskujemy dostęp do najwyższego schowka, „stash@{0}: «Poprawka błędu: Strona główna»”. Jest to ustawienie domyślne, ponieważ ma indeks 0. Jeśli chcesz użyć innego schowka, musisz dołączyć indeks do polecenia, używając stash@{stash_index}.
Ten dokument zawiera podobne zmiany, ale w rzeczywistości są to różne wersje lokalne. Co można było zaimplementować zamiast tego:
Nie jest jasne, jakie zmiany wprowadzono w tym schowku. Zaleca się użycie opcji —patch lub -p, aby rozwiązać tę niejasność. Ta opcja pozwala zobaczyć różnice między plikami a wprowadzonymi zmianami.
Teraz, gdy niezbędne zmiany zostały zidentyfikowane, czas je zastosować w projekcie. Aby to zrobić, użyj polecenia git stash apply, które pobierze ostatni zapisany stan z lokalnego repozytorium. To polecenie pozwala efektywnie zarządzać zmianami w kodzie, zachowując wersje pośrednie i zapewniając możliwość powrotu do nich w razie potrzeby. Korzystanie z polecenia git stash apply pomaga utrzymać porządek w projekcie i upraszcza proces rozwoju.
Jeśli potrzebujesz użyć alternatywnej metody przechowywania, określ ją po słowie „apply”.
Po wykonaniu polecenia git stash apply zmiany pozostają w lokalnym archiwum. Aby pobrać skrytkę i całkowicie usunąć ją z repozytorium, użyj polecenia git stash pop. To polecenie nie tylko przywraca zmiany, ale także usuwa je z listy skrytek, co pozwala zachować porządek w repozytorium. Użycie polecenia git stash pop jest szczególnie przydatne podczas pracy z wieloma gałęziami, ponieważ pomaga uniknąć zamieszania i ułatwia zarządzanie zmianami.
Podczas przeglądania listy skrytek zauważysz, że brakuje ostatniego wpisu.
Aby usunąć konkretną skrytkę, określ ją po poleceniu pop.
Jeśli chcesz utworzyć nową gałąź w repozytorium ze wszystkimi zmianami z lokalnego repozytorium, użyj polecenia git stash branch. To polecenie pozwala zachować bieżące zmiany i jednocześnie utworzyć nową gałąź, upraszczając proces pracy ze zmianami i zapewniając bardziej przejrzyste podejście do kontroli wersji. Po uruchomieniu tego polecenia możesz kontynuować pracę nad nową gałęzią, zachowując wszystkie niedokończone zmiany. Jest to szczególnie przydatne do utrzymania porządku w repozytorium i minimalizacji konfliktów podczas scalania.
Udało nam się utworzyć nową gałąź i przenieść do niej wszystkie niezbędne zmiany z lokalnego repozytorium. Spowoduje to również usunięcie danych z samego repozytorium.
Aby zwolnić miejsce w lokalnym repozytorium i usunąć niepotrzebne stare skrytki, możesz użyć polecenia git stash drop. To polecenie pozwala usunąć konkretny element skrytki z listy skrytek, co pomaga zachować porządek i optymalizuje wykorzystanie przestrzeni. Jeśli chcesz usunąć wszystkie skrytki, użyj polecenia git stash clear. Prawidłowe zarządzanie skrytkami w Gicie pomoże uniknąć nieporozumień i zapewni bardziej efektywną pracę z projektami.
Zakończyliśmy dzisiejszą pracę nad projektem i pomyślnie wprowadziliśmy wszystkie zmiany. Jednak Twoja lokalna lista skrytek nadal zawiera elementy. Czas ją całkowicie wyczyścić. Aby to zrobić, użyj polecenia git stash clear, które usunie wszystkie stany skrytek, umożliwiając Ci rozpoczęcie od nowa. Pomoże to utrzymać porządek w repozytorium i uniknąć zamieszania w przyszłości.
O czym należy pamiętać
- git stash to polecenie, które pozwala Ci wprowadzać zmiany w kodzie do lokalnego repozytorium i wracać do nich później. Wszystko to dzieje się na Twoim komputerze, a nie w repozytorium.
- Możesz umieścić w tym repozytorium dowolną liczbę wpisów. Możesz również wykonywać na nich różne czynności, takie jak dodawanie, usuwanie lub przeglądanie ich zawartości.
- Podstawowe polecenia dla polecenia git stash to git stash save, git stash list i git stash apply. Pomogą Ci zapisać zmiany w repozytorium, wyświetlić listę dostępnych skrytek i zastosować je w Twoim projekcie.
Dowiedz się więcej o kodowaniu i programowaniu na naszym kanale Telegram. Subskrybuj, aby być na bieżąco z najnowszymi wiadomościami i przydatnymi wskazówkami!
Przeczytaj również:
- Czym jest Git: wyjaśnienie za pomocą diagramów
- Test. Klątwa jak Linus Torvalds
- GitHub: Czym jest i jak z niego korzystać – przewodnik dla początkujących

