[GIT] Jak zmienić opis ostatniego commit-a ?

Programowanie
[GIT] Jak zmienić opis ostatniego commit-a ?

Któż nie popełnia błędów, każdy z nas czasem napisze opis commit-a w którym znajdzie się jakiś błąd. Może to być literówka bądź błędny identyfikator zadania z systemu zadań. Jednak GIT to wspaniałe narzędzie, które umożliwia nam poprawienie błędu nawet jeśli wysłaliśmy commit-a na serwer.

Jako że każde IDE różni się integracją z GIT-em to pokażę jak to zrobić z poziomu konsoli. Każdy bowiem powinien znać podstawy obsługi GIT-a z poziomu konsoli.

Zmiana opisu commit-a

Polecenie, które pozwala na modyfikację opisu ostatniego commit-a wygląda następująco:

git commit --amend

Jego wywołanie spowoduje otwarcie edytora tekstu w którym zobaczymy treść ostatniego commit-a. Wprowadzamy zmiany, zapisujemy i wychodzimy co spowodowało zmianę opisu.

Jednak jeśli nie chcemy otwierać edytora tylko wprowadzić nową treść opisu z poziomu konsoli to do polecenia dodajemy flagę -m. Będzie ono wyglądało wtedy następująco:

git commit --amend -m "Nowy opis"

Zmiany jakie zrobiliśmy możemy podejrzeć w logach poleceniem:

git log

Teraz kiedy opis jest prawidłowy możemy wysłać commit-a poleceniem git push.

Zmiana opisu commit-a wysłanego na serwer (remote branch)

Jeśli zmieniamy opis commit-a, który został już wysłany na serwer to poprzednie kroki pozostają bez zmian poza sposobem wysłania commit-a. W takim przypadku musimy użyć metody siłowej, która wygląda następująco:

git push <remote> <branch> --force

lub

git push <remote> <branch> -f

Jednak taka siłowa metoda jest dość niebezpieczna i powinniście używać jej świadomie. Wysyłanie zmian metodą siłową powoduje nadpisanie gałęzi na serwerze waszą lokalną gałęzią. Jest to o tyle ryzykowne, że jeśli nie macie jakiegoś commit-a u siebie lokalnie bo kolega chwilę po was coś wysłał to zostanie to utracone.

Drugie niebezpieczeństwo jakie istnieje przy metodzie siłowej to sytuacja w której ktoś pobrał zmiany z błędnym opisem. My zaś po wysłaniu poprawionego opisu zmieniamy jego identyfikator SHA co może sprawić wiele problemów. Osoby, które posiadają starszą wersję gałęzi powinny ją zaktualizować, aby pobrać modyfikacje. Niestety nie zawsze obejdzie się bez komplikacji więc proszę używajcie tej metody z rozwagą 🙂