2013-10-02 13 views
27

Czy istnieje opcja w grze tortoisegit w celu cofnięcia ostatniego zatwierdzenia do repozytorium?Tortoisegit cofnąć ostatnie zatwierdzenie do repozytu

Przez pomyłkę wepchnąłem dużą liczbę niepotrzebnych plików do mojego repozytorium git (branch: master), które muszę cofnąć. Dużo szukałem odpowiedniej opcji w gitarze żółwia, aby cofnąć pchnięcie i powrócić do stanu sprzed ostatniego zatwierdzenia. Pokaż mi sposób cofnięcia ostatniego zatwierdzenia.

Odpowiedz

26

Jeśli musisz przywrócić poprzedni stan przed ostatnim zatwierdzeniem, po prostu wybierz akcję z listy logów i wybierz revert changes by this commit.

Uważaj, musisz ponownie wprowadzić zmiany commit i push.

+0

Dzięki temu zadziałało. Ale teraz daje mi kolejny błąd (pusty komunikat z przyciskiem "OK"), kiedy wybieram pliki i klikam przycisk zatwierdzania. Używam wersji tortoisegit 1.8.5. Ale tak się nie dzieje w przypadku innego repozytorium na moim komputerze. – user2742122

37

Jeśli nie pchnął jeszcze zmian (tak swój popełnić tylko lokalny)

  1. TortoiseGit ->Show log
  2. Wybierz zobowiązać do którego chcesz się cofnąć do
  3. Reset "<branch>" to this...

Jeśli tak, to nadal można to zrobić, ale wtedy trzeba również wykonać force-push (sprawdź "nadpisz znane zmiany").


Istnieje również skrót, gdy chcesz po prostu (1) przerobić ostatni popełnić i (2) Państwo nie popchnął go jeszcze:

  1. Zatwierdź -> Sprawdź "Zmień ostatnie zatwierdzenie"

To zastąpi ostatnie zatwierdzenie nowym. Ale nie polecam korzystania z tego - jeśli ostatnie zatwierdzenie jest już pchnięte, możesz skończyć z wielkim bałaganem. TortoiseGit będzie nie Cię tu zatrzymać.

Dokonując resetu Reset, musisz przejrzeć dziennik, a zobaczysz, czy zatwierdzenie jest lokalne czy nie.

+0

Jak chcesz usunąć nieinterpretowane lokalne zatwierdzenie? –

+0

Odpowiedziałem na własne pytanie. Nie ma potrzeby usuwania niezaokreślonego lokalnego zatwierdzenia. Kliknij go prawym przyciskiem myszy i wybierz "utwórz gałąź przy tym zatwierdzeniu" i utwórz nowy oddział. Następnie możesz kliknąć link, aby usunąć ten oddział: http://stackoverflow.com/questions/9705534/how-do-i-delete-a-git-branch-with-tortoisegit –

+0

@BarryGuvenkaya: Nie sądzę, że trzeba utworzyć nowy oddział. Zakładając, że nie pchnąłeś, po zresetowaniu istniejącej gałęzi, musisz odświeżyć dziennik, a lokalny zatwierdzenie zniknie, ponieważ zresetowałeś indeks. – Ellesedil