Witamy na naszym blogu.

„Any fool can write code that a computer can understand. Good programmers write code that humans can understand.” – Martin Fowler


Blog post image

Apteczka pierwszej pomocy programisty

Apteczka pierwszej pomocy programisty

Przychodzi taki dzień kiedy zmęczenie, problemy prywatne czy ostatnie komentarze Twojego managera powodują chwilowe przyćmienie umysłu albo po prostu robisz zbyt wiele rzeczy na raz i coś Ci umknie. Większość z nas wykorzystuje systemy kontroli wersji, najbardziej popularnym jest git. Został on przygotowany przez mistrza Torvaldsa by chronić nas przed błędami.

Ale jak się odnaleźć w gąszczu komend i poleceń, które czasem ciężko znaleźć w dokumentacji? Przedstawiamy szybki poradnik jak wyjść z większości tarapatów przy wykorzystaniu git-a.

Zmiana ostatniej wiadomości

Czasem się zdarzy, że popełnimy drobny błąd językowy w opisie commita. Możemy naprawić ten błąd przez ponowne wywołanie komendy `commit` z parametrem `-ammend`. Zostaniemy przywitani edytorem ostatniej wiadomości.


```

git commit --ammend

```


Pamiętajmy jednak, że wykonywanie tej operacji powinno się robić przed wypchnięciem lokalnych zmian do serwera zdalnego. Rezultatem operacji ammend jest bowiem utworzenie nowego commit-a z nowym ID co jest zaburzeniem głównej ścieżki danej gałęzi. 

Wykonywanie operacji ammend na publicznym repozytorium nigdy nie powinno być wykonywane!

Zapomniane pliki

Kontynuując poprzedni wątek poprawy ostatniej wiadomości czasem zdaży się nam zapomnieć dodać do commit-a jakiegoś pliku. Możemy poprawić ten commit wykonując 2 operacje:

1. należy dodać do obszaru staging plik zapomniany `git add forgotten.file`

2. następnie by poprawić ostatni commit wywołujemy `git commit --amend --no-edit`

Nowopowstały commit będzie teraz zawierać brakujący plik. Pamiętajmy jednak by nie wykonywać tej operacji na publicznym repozytorium, co tłumaczymy w poprzednim punkcie.

Cofnijmy się w czasie

Przyjmijmy sytuację, w której testujemy jakieś zmiany, dodajemy nowe, ale zmieniają się założenia, bo nasz kochany analityk biznesowy zapomniał o kilku faktach. To powoduje, że nasze zmiany sprzed ostatnich kilku commitów poszły w całkiem inną stronę niż powinny. Chcemy się cofnąć o N commitów wstecz. Możemy sprawdzić wszystkie zmiany wykorzystując komendę `git reflog`. Aby cofnąć się do konkretnego punktu możemy użyć `git reset HEAD@{index}` gdzie index uzyskujemy z komendy `reflog`.

Zmieniamy kurs

Jest piątek, każdy chce coś na wczoraj, przełączamy się przez 15 branchy i nasze commity lądują na złej gałęzi. Na całe szczęście cofnięcie tego może być proste zależnie od wybranej opcji. A do wyboru mamy 2:

1. tworzymy nowy branch, który jest kontynuacją poprzedniego,

2. przenosimy zmiany na drugi branch.

W pierwszej sytuacji najpierw utworzymy nową gałąź w miejscu, które zawiera nasze zmiany do przeniesienia (`git branch new-name`), a następnie cofniemy zmiany na aktualnym branch (`git reset HEAD~ --hard`). I nie zapomnijmy najważniejszego, czyli przełączenia na nowo utworzoną gałąź (`git checkout new-name`).

W drugim przypadku możemy skopiować commit z istniejącymi zmianami wykorzystując operację zbierania wiśni (`git cherry-pick source-branch-name`). Pamiętajmy by wcześniej zmienić gałęź na docelową. Po tej operacji pozostaje jeszcze cofnąć zmiany na gałęzi źródłowej zgodnie z instrukcją z poprzedniego paragrafu.

Do brzegu

Git to nieocenione narzędzie w pracy nad kodem, pozwalające zachować pełną historię zmian i umożliwiające łatwe zarządzanie projektami przez zespół. Dzięki systemom kontroli wersji łatwo można wycofać niechciane zmiany, przejść do wcześniejszych wersji kodu i naprawić błędy, które mogą wyniknąć w trakcie pracy. Ten poradnik jest jedynie wstępem do ogromnych możliwości, które drzemią w narzędziach używanych na co dzień.


Udostępnij ten wpis:

FacebookX (Twitter)LinkedIn
Firma

Solid Company
Solid Company

Small software house specialized in web applications development using Microsoft .NET platform and Azure cloud technologies.