Pięć poleceń Gita, które ratują dzień
Commit, push, pull — to zna każdy. Poniżej pięć poleceń z drugiego szeregu, które wyciągają z kłopotów: od odzyskania skasowanej gałęzi po znalezienie commitu, który zepsuł aplikację.
Do codziennej pracy wystarczy kilka poleceń Gita. Ale są dni, kiedy coś idzie nie tak — i wtedy przydaje się wiedzieć, że narzędzie ma dużo więcej do zaoferowania.
1. git stash — odłóż to na chwilę
Jesteś w połowie zmiany, a nagle trzeba pilnie poprawić coś na innej gałęzi. Nie chcesz commitować bałaganu:
git stash # schowaj bieżące zmiany
git switch main # zrób pilną poprawkę
git stash pop # wróć i odzyskaj swoje zmiany
Zmiany lądują na osobnej półce i wracają dokładnie tam, gdzie były.
2. git reflog — Git pamięta wszystko
Skasowałeś gałąź. Zrobiłeś twardy reset. Wygląda na to, że praca przepadła. Prawie nigdy tak nie jest — Git prowadzi dziennik każdego ruchu wskaźnika:
git reflog # lista wszystkich stanów
git checkout -b ratunek abc1234 # odtwórz gałąź z wybranego punktu
To pierwsze polecenie, po które warto sięgnąć, zanim uzna się coś za stracone.
3. git bisect — znajdź winowajcę
Aplikacja działała miesiąc temu, teraz nie działa, a od tego czasu przybyło dwieście commitów. Zamiast sprawdzać je po kolei, niech Git zrobi to metodą przepoławiania:
git bisect start
git bisect bad # obecna wersja jest zepsuta
git bisect good v1.4 # ta jeszcze działała
Git przestawia projekt na commit w połowie zakresu. Sprawdzasz, mówisz git bisect good albo bad, i tak dalej. Przy dwustu commitach wystarczy około ośmiu sprawdzeń.
4. git cherry-pick — jeden commit, nie cała gałąź
Poprawka siedzi na gałęzi rozwojowej, ale potrzebna jest na produkcji już teraz — bez reszty zmian:
git switch produkcja
git cherry-pick abc1234
5. git blame — kto to napisał i po co
Wbrew nazwie nie chodzi o szukanie winnych, tylko kontekstu. Polecenie pokazuje przy każdej linii commit, w którym powstała:
git blame plik.php
Dzięki temu trafiasz do opisu commitu, a często i do numeru zgłoszenia. Dziwny warunek w kodzie zwykle przestaje być dziwny, gdy przeczytasz, po co go dodano.
Git rzadko coś naprawdę traci. Zwykle po prostu nie wiemy jeszcze, którym poleceniem to odzyskać.
I jedna zasada na koniec: pisz sensowne opisy commitów. Za pół roku git blame pokaże ci twój własny komunikat i to od niego będzie zależeć, czy zrozumiesz własną decyzję.
Komentarze (11)
-
Łukasz
Reflog uratował mi kiedyś dwa dni pracy po nieprzemyślanym resecie. Powinni o nim mówić na pierwszej lekcji Gita, a nie na dwudziestej.
Odpowiedz -
Łukasz
Reflog uratował mi kiedyś dwa dni pracy po nieprzemyślanym resecie. Powinni o nim mówić na pierwszej lekcji Gita, a nie na dwudziestej.
Odpowiedz -
Natalia
Bisect wygląda na magię, dopóki się go nie użyje. Znalazłam zepsuty commit wśród trzystu w kwadrans.
Odpowiedz -
Natalia
Bisect wygląda na magię, dopóki się go nie użyje. Znalazłam zepsuty commit wśród trzystu w kwadrans.
Odpowiedz -
Paweł
Do listy dorzuciłbym jeszcze git worktree. Bardzo wygodne, gdy trzeba szybko zerknąć na inną gałąź bez ruszania bieżącej pracy.
Odpowiedz -
Paweł
Do listy dorzuciłbym jeszcze git worktree. Bardzo wygodne, gdy trzeba szybko zerknąć na inną gałąź bez ruszania bieżącej pracy.
Odpowiedz -
student2026
A jest gdzieś podobna lista, tylko dla pracy w zespole? Merge kontra rebase i takie rzeczy.
Odpowiedz -
student2026
A jest gdzieś podobna lista, tylko dla pracy w zespole? Merge kontra rebase i takie rzeczy.
Odpowiedz- Administrator autor bloga
Dobry pomysł na kolejny tekst. Merge kontra rebase, sensowne opisy commitów i przegląd kodu — dopiszemy do planu.
Odpowiedz
-
Przeczytaj też
Pięć wyrażeń regularnych, które warto mieć pod ręką
Wyrażenia regularne wyglądają jak przypadkowy zbiór znaków, dopóki nie rozłoży się ich na części. Oto pięć wzorców z codziennej pracy, rozebranych po kawałku.
Co naprawdę siedzi w katalogu node_modules
Świeży projekt, jedna komenda, a na dysku przybywa 200 MB i 30 tysięcy plików. Skąd to się bierze i czy jest się czym martwić.
WebSocket w Node: kiedy strona ma odzywać się sama
Zwykły HTTP działa jak wysyłanie listów: klient pyta, serwer odpowiada. Przy czacie czy powiadomieniach to za mało — potrzebna jest linia telefoniczna, którą obie strony mogą się odezwać w dowolnym momencie. Od tego jest WebSocket.
Robimy strony, które są szybkie nie tylko na papierze.
Poproś o darmową wycenę