Jak edytować niepoprawną wiadomość o zatwierdzeniu za pomocą TortoiseGit?

Odpowiedzi:

161

Jeśli zatwierdzenie jest nagłówkiem bieżącej gałęzi, jest to łatwe.

  1. Menu kontekstowe -> Git Commit
  2. Zaznacz pole wyboru „Zmień ostatnie zatwierdzenie”
  3. Popraw komunikat o zatwierdzeniu
  4. dobrze

Jeśli zatwierdzenie jest nagłówkiem innej gałęzi, przełącz się najpierw na tę gałąź.

  1. Menu kontekstowe -> TortoiseGit -> Switch / Checkout
  2. Wybierz nazwę oddziału
  3. dobrze
  4. Wykonaj powyższe 1-4 kroki, aby zmienić komunikat o zatwierdzeniu

Jeśli zatwierdzenie znajduje się pośrodku, bez łączenia nagłówków, musisz zresetować, poprawić i wybrać najlepszy wybór

  1. Menu kontekstowe -> TortoiseGit -> Dziennik
  2. Wybierz zatwierdzenie -> menu kontekstowe -> Resetuj
  3. Twardy reset ( spowoduje to odrzucenie całej pracy zawartej w zatwierdzeniach powyżej wybranego zatwierdzenia, a także wszelkich niezatwierdzonych zmian w katalogu roboczym )
  4. dobrze
  5. Wykonaj powyższe 1-4 kroki, aby zmienić komunikat o zatwierdzeniu
  6. Wybierz od głowy do jednego zatwierdzenia powyżej -> Menu kontekstowe -> Cherry-pick
  7. Kontyntynuj
linquize
źródło
12
Naprawdę brakuje mi „Edytuj wiadomość dziennika” TortoiseSVN. Czy jest szansa, że ​​dodadzą taką funkcję?
Benoit Blanchon,
3
Zgubiłem się w kroku 6, co masz na myśli, mówiąc „Wybierz od głowy do jednego zatwierdzenia powyżej”, czy jest to opcja w menu kontekstowym?
Flethuseo
1
utracone również w kroku 6. nigdzie nie ma opcji wyboru wiśni i nie widzę powyższego zatwierdzenia (po prostu mówi, że zmiany w
katalogu roboczym
13
Głosuj w dół, ponieważ myślę, że sugestie w przypadku, gdy zatwierdzenie jest w środku, spowodowały, że odrzuciłem zmiany w kodzie aż do tego zatwierdzenia, czyli kilku tygodni pracy.
Samuel
8
OSTRZEŻENIE: Użyj opcji „Utwórz gałąź w tej wersji”, aby ustawić tymczasową nazwę gałęzi przed zresetowaniem do zatwierdzenia, które chcesz zmodyfikować. W przeciwnym razie ryzykujesz utratę wszystkich zatwierdzeń powyżej tego punktu. (Jeśli już ci się to przydarzyło, git reflogpomoże ci je odzyskać).
Steve Pitchers
19

W przypadku, gdy zatwierdzenie jest pośrodku, zdecydowanie polecam nie postępować zgodnie z instrukcjami dostarczonymi przez linquize, zobacz komentarze pod jego odpowiedzią.

  1. Możesz użyć wiersza poleceń git z TortoiseGit i nie spowoduje to żadnych problemów: Czy mogę jednocześnie używać narzędzi Git wiersza poleceń i TortoiseGit? .

  2. Ten film na YouTube wyjaśnia to naprawdę dobrze: http://youtu.be/4YjKY0u9Z6I . Zasadniczo użyj git rebase -i, a następnie po prostu „przeredaguj” treść komunikatu.

Aktualizacja: Wierzę, że możesz odzyskać utracone zatwierdzenia z twardego resetu sugerowanego przez linquize, zobacz odpowiedź Wayne'a tutaj: Jak mogę zmienić kolejność / łączyć zatwierdzenia za pomocą Git rebase? .

Samuel
źródło
7
Zgoda. git zajmuje mi niewiarygodnie dużo czasu, aby nauczyć się obsługi, SVN był taki prosty. Koncepcja git jest prosta, ale jego użycie nie jest.
Samuel
TortoiseGit oferuje również interaktywną rebase, nie trzeba do tego używać wiersza poleceń.
Peter
13

Powiedziałbym, że najlepszą metodą zmiany dowolnego komunikatu o zatwierdzeniu jest użycie force rebaseopcji w tortoisegit.

Zobacz tę odpowiedź na Jak zmienić kolejność zatwierdzeń (rebase) za pomocą TortoiseGit . Tej samej metody można użyć do edycji komunikatów o zatwierdzeniach.

  • W oknie dialogowym rebase kliknij prawym przyciskiem zatwierdzenie, które chcesz edytować, i wybierz Editopcję. Możesz wybrać edycję wielu zatwierdzeń.
  • Kliknij Start Rebaseprzycisk.
  • Rebase zatrzyma się przy zatwierdzeniach, które zaznaczyłeś Edit
  • Kliknij Commit Messagekartę u dołu i edytuj wiadomość
  • Kliknij Amendprzycisk, aby kontynuować
geoji
źródło