Git: Zmodyfikuj istniejący komunikat zatwierdzenia

Błędy są powszechne, wszyscy je popełniamy. Dlatego nakładają gumki na ołówki. Nie inaczej jest z narzędziami takimi jak Git. Chociaż niektóre zmiany mogą być trudne do cofnięcia, zwykle jest na to sposób.

A co, jeśli chcesz zmodyfikować istniejący komunikat zatwierdzenia? Na szczęście jest to proste w Git, ale metoda może się nieco zmienić w zależności od niektórych czynników.

Napraw ostatnie zatwierdzenie, które nie zostało jeszcze przesunięte do zdalnego

To najprostszy przypadek, ponieważ nie ma potrzeby modyfikowania zdalnego repozytorium, wystarczy zmodyfikować własne. W takim przypadku możesz użyć następującego polecenia:

$ git commit --amend

Uruchomienie tego polecenia otworzy edytor, w którym możesz modyfikować trwać zatwierdź wiadomość. Gdy skończysz i zapiszesz/zamkniesz edytor, komunikat zatwierdzenia zostanie zmieniony.

Osobiście wolę robić większość rzeczy w wierszu poleceń, co można zrobić, dodając argument i wiadomość do powyższego polecenia:

$ git commit --amend -m "Added a new file"

Wykonanie tego w ten sposób nie otworzy edytora, ale zamiast tego natychmiast zmodyfikuje komunikat zatwierdzenia.

Napraw ostatnie zatwierdzenie, przeniesione do zdalnego

To kolejny częsty przypadek i jest nieco trudniejszy do naprawienia, nie tylko dlatego, że musimy zmodyfikować nasze własne repozytorium, ale także musimy zmodyfikować zdalne repozytorium, które może być dalej niż twój lokalny oddział.

Pierwszym krokiem jest zmiana ostatniego zatwierdzenia, tak jak zrobiliśmy to w poprzedniej sekcji:

$ git commit --amend -m "Added a new file"

Następnie musisz przekazać te zmiany do zdalnego repozytorium. Należy to jednak zrobić za pomocą --force flag.

$ git push <remote> <branch> --force

Musimy to zrobić w ten sposób, aby nadpisać zdalne repozytorium naszym własnym stanem lokalnym.

Pamiętaj, że zmuszając do pchania, również stracić wszelkie zatwierdzenia w lokalnym oddziale, których jeszcze nie masz w swoim lokalnym oddziale. Postępuj ostrożnie!

Zapoznaj się z naszym praktycznym, praktycznym przewodnikiem dotyczącym nauki Git, zawierającym najlepsze praktyki, standardy przyjęte w branży i dołączoną ściągawkę. Zatrzymaj polecenia Google Git, a właściwie uczyć się to!

Jeśli wystarczająco szybko złapiesz błąd, wprowadzenie zmiany nie będzie problemem. W przeciwnym razie może być konieczne znalezienie innego rozwiązania, aby uniknąć utraty zmian wprowadzonych po komunikacie zatwierdzenia, który chcesz zmienić.

Użyj interaktywnej zmiany bazy

Inną opcją, która jest bardziej elastyczna niż poprzednio opisane rozwiązania, jest użycie interaktywnej rebazy. Dzięki temu możesz sprawdzić ostatnie N rewizji i wprowadzić w nich zmiany, w tym wybieranie, zgniatanie itp.

Aby rozpocząć zmianę bazy, możesz użyć następującego polecenia:

$ git rebase -i HEAD~n

Tutaj, n to liczba zatwierdzeń, które chcesz sprawdzić i edytować. Zobaczysz wtedy listę zatwierdzeń, podobną do tej:

$ $ git rebase -i HEAD~4
pick 788ebf0 Oops, I forgot to add a new file
pick ced1329 Fixed a super critical bug
pick 5e9cdc5 Added a new file



















Jak widać, wszystkie ostatnie N zatwierdzenia są na liście i możesz modyfikować ich komunikaty według potrzeb.

Znak czasu:

Więcej z Nadużycie stosu