Czasami chcesz zmienić gałęzie, ale pracujesz nad niekompletną częścią bieżącego projektu. Nie chcesz angażować się w połowę wykonanej pracy. Git stashing pozwala to zrobić. The polecenie git stash umożliwia przełączanie gałęzi bez zatwierdzania bieżącej gałęzi.
Poniższy rysunek przedstawia właściwości i rolę ukrywania w odniesieniu do repozytorium i katalogu roboczego.
Ogólnie rzecz biorąc, znaczenie skrytki to „ przechowuj coś bezpiecznie w ukrytym miejscu .' Sens w Git jest taki sam także w przypadku skrytki; Git tymczasowo bezpiecznie zapisuje Twoje dane, bez konieczności ich zatwierdzania.
Przechowywanie przejmuje bałagan w katalogu roboczym i tymczasowo zapisuje go do dalszego wykorzystania. Wiele opcji jest dostępnych w git stash. Poniżej podano kilka przydatnych opcji:
Schowanie pracy
Rozumiemy to za pomocą scenariusza czasu rzeczywistego. Wprowadziłem zmiany w moim projekcie GitExample2 w dwóch plikach z dwóch różnych gałęzi. Mam bałagan i nie edytowałem jeszcze całkowicie żadnego pliku. Chcę więc zapisać go tymczasowo do wykorzystania w przyszłości. Możemy go schować i zapisać jako bieżący stan. Aby ukryć, spójrzmy na bieżący stan repozytorium. Aby sprawdzić aktualny stan repozytorium, uruchom komendę git status. Polecenie git status jest używane jako:
Acore procesu Androida
Składnia:
$ git status
Wyjście:
Z powyższych danych wyjściowych można zobaczyć status dwóch nieśledzonych plików projekt.css I nowy plik.txt dostępne w repozytorium. Aby zapisać go tymczasowo, możemy użyć polecenia git stash. Polecenie git stash jest używane jako:
Składnia:
$ git stash
Wyjście:
W danym wyniku praca jest zapisywana za pomocą polecenia git stash. Możemy sprawdzić status repozytorium.
Jak widać, moja praca jest po prostu ukryta w bieżącej pozycji. Teraz katalog jest czyszczony. W tym momencie możesz przełączać się między gałęziami i pracować nad nimi.
Git Stash Save (Zapisywanie skrytek z wiadomością):
W Git zmiany można ukryć wraz z komunikatem. Aby ukryć zmianę w wiadomości, uruchom poniższe polecenie:
Składnia:
$ git stash save ''
Wyjście:
Powyższa skrytka zostanie zapisana z wiadomością
Lista skrytek Git (sprawdź zapisane skrytki)
Aby sprawdzić przechowywane skrytki, uruchom poniższe polecenie:
Składnia:
$ git stash list
Wyjście:
W powyższym przypadku utworzyłem jedną skrytkę, która jest wyświetlana jako „ stash@{0}: WIP w teście: 0a1a475 plik CSS '.
Jeśli mamy więcej niż jedną skrytkę, wyświetli odpowiednio wszystkie skrytki z różnymi identyfikatorami skrytki. Rozważ poniższe dane wyjściowe:
Pokaże wszystkie skrytki z indeksowaniem jako skrytka@{0}: skrytka@{1}: i tak dalej.
Zastosuj Git Stash
Możesz ponownie zastosować właśnie ukryte zmiany, używając polecenia git stash. Aby zastosować zatwierdzenie, użyj polecenia git stash, a następnie opcji Apply. Jest używany jako:
Składnia:
$ git stash apply
Wyjście:
Powyższe wyjście przywraca ostatnią skrytkę. Teraz, jeśli sprawdzisz status repozytorium, pokaże zmiany wprowadzone w pliku. Rozważ poniższe wyjście:
Z powyższych danych wynika, że repozytorium zostało przywrócone do poprzedniego stanu sprzed przechowywania. Pokazuje dane wyjściowe jako „ Zmiany nie przygotowane do zatwierdzenia .'
W przypadku więcej niż jednej skrytki możesz użyć polecenia „git stash Apply”, po którym następuje identyfikator indeksu skrytki, aby zastosować określone zatwierdzenie. Jest używany jako:
Składnia:
$ git stash apply
Rozważ poniższe dane wyjściowe:
Wyjście:
Jeśli nie określimy skrytki, Git bierze najnowszą skrytkę i próbuje ją zastosować.
nieuporządkowane przechodzenie przez drzewo
Zmiany w Git Stash
Możemy śledzić skrytki i ich zmiany. Aby zobaczyć zmiany w pliku przed i po operacji przechowywania, uruchom poniższe polecenie:
Składnia:
$ git stash show
Powyższe polecenie wyświetli ukryty plik i wprowadzone w nim zmiany. Rozważ poniższe dane wyjściowe:
Wyjście:
Powyższe dane wyjściowe ilustrują, że istnieją dwa pliki, które są ukryte i wykonano na nich dwa wstawienia.
Możemy dokładnie prześledzić, jakie zmiany zostały wprowadzone w pliku. Aby wyświetlić zmienioną zawartość pliku wykonaj poniższe polecenie:
Składnia:
$ git stash show -p
Tutaj -p oznacza częściową skrytkę. Podane polecenie wyświetli edytowane pliki i zawartość, rozważ poniższe dane wyjściowe:
Wyjście:
Powyższe dane wyjściowe pokazują nazwę pliku ze zmienioną zawartością. Działa tak samo jak polecenie git diff. The git różnica polecenie pokaże również dokładne dane wyjściowe.
Git Stash Pop (ponowne zastosowanie ukrytych zmian)
Git pozwala użytkownikowi ponownie zastosować poprzednie zatwierdzenia za pomocą polecenia git stash pop. Opcja otwierania usuwa zmiany ze skrytki i stosuje je do pliku roboczego.
Polecenie git stash pop jest dość podobne do polecenia git stash Apply. Główną różnicą między obydwoma poleceniami jest polecenie stash pop, które usuwa skrytkę ze stosu po jej zastosowaniu.
Składnia:
$ git stash pop
Powyższe polecenie ponownie zastosuje poprzednie zatwierdzenia w repozytorium. Rozważ poniższe dane wyjściowe.
Wyjście:
Nowa linia Pythona
Git Stash Drop (Unstash)
The git upuść skrytkę polecenie służy do usunięcia skrytki z kolejki. Zwykle usuwa najnowszą skrytkę. Należy zachować ostrożność przed użyciem polecenia upuszczenia skrytki, ponieważ raz zastosowane jest trudne do cofnięcia.
Jedynym sposobem na przywrócenie tego jest nie zamknięcie terminala po usunięciu skrytki. Polecenie upuszczenia skrytki zostanie użyte jako:
Składnia:
$ git stash drop
Wyjście:
W powyższym wyjściu najnowsza skrytka (skrytka@{0}) został usunięty z trzech skrytek. Polecenie stash list wyświetla listę wszystkich dostępnych skrytek w kolejce.
Możemy także usunąć konkretny schowek z kolejki. Aby usunąć konkretną skrytkę z dostępnych skrytek, podaj identyfikator skrytki w poleceniu upuszczenia skrytki. Będzie przetwarzane jako:
Składnia:
Algebra relacyjna w rdbms
$ git stash drop
Załóżmy, że w kolejce mam dostępne dwie skrytki i nie chcę porzucić ostatniej skrytki, ale chcę usunąć starszą. Wtedy będzie funkcjonował następująco:
$ git stash drop stash@{1}
Rozważ poniższe dane wyjściowe:
W powyższych wynikach zatwierdzenie skrytka@{1} został usunięty z kolejki.
Git Stash Wyczyść
The git, wyczyść skrytkę polecenie pozwala na jednoczesne usunięcie wszystkich dostępnych skrytek. Aby usunąć wszystkie dostępne skrytki, wykonaj poniższe polecenie:
Składnia:
$ git stash clear
usunie wszystkie skrytki istniejące w repozytorium.
Wyjście:
Wszystkie skrytki zostaną usunięte w powyższym wyniku. Polecenie git stash list jest puste, ponieważ w repozytorium nie ma dostępnych skrytek.
Oddział Git Stash
Jeśli ukryłeś trochę pracy w konkretnej gałęzi i kontynuujesz pracę w tej gałęzi. Może to wówczas spowodować konflikt podczas łączenia. Dlatego dobrze jest przechowywać pracę w osobnej gałęzi.
Polecenie git stash Branch pozwala użytkownikowi przechowywać pracę w osobnej gałęzi, aby uniknąć konfliktów. Składnia tej gałęzi jest następująca:
Składnia:
$ git stash branch
Powyższe polecenie utworzy nową gałąź i przeniesie do niej ukrytą pracę. Rozważ poniższe dane wyjściowe:
Wyjście:
W powyższym wyniku ukryta praca jest przenoszona do nowo utworzonej gałęzi testowej. Pozwoli to uniknąć konfliktu scalania w gałęzi głównej.