2009-11-03 16 views
24

Podczas korzystania z Git with TortoiseGit: Czy ktoś wie, jak przywrócić pojedynczy plik (lub pełne repozytorium) do poprzedniej wersji?Git (TortoiseGit) - Jak przywrócić pojedynczy plik do poprzedniej wersji, a następnie cofnąć cofnięcie?

Na przykład mam repozytorium zawierające wiele plików. Jeden plik istnieje w trzech wersjach (1; 2; 3). Teraz chcę zmienić z wersji 3 z powrotem na 2.

TortoiseGit oferuje funkcję "Przywróć" w oknie dialogowym "Pokaż dziennik", która pozwala na powrót do konkretnej wersji, ale spowoduje to cofnięcie całego repozytorium zamiast pojedynczy plik.

Również raz coś cofnąłem, nie mam pojęcia, jak cofnąć powrót i wrócić do najnowszej wersji.

Odpowiedz

14

Z wiersza poleceń: git checkout jest prawdopodobnie to, co chcesz.

Dokumentacja pokazuje przykład:

$ git checkout master~2 Makefile

aby przywrócić Makefile się dwie wersje z powrotem w gałęzi głównej

Od wewnątrz TortoiseGit (poprzez Windows Explorer) wygląda jak można to zrobić z następującymi krokami:

  • Nawiguj w Eksploratorze do folderu, w którym znajduje się plik.
  • prawym przyciskiem myszy na plik, który chcesz przywrócić, wybierz Show log z menu kontekstowego TortoiseGit
  • W górnej części („Wykres”) wybrać wersję, która ma wersję pliku, który chcesz przywrócić
  • W trzeciej części (lista plików) kliknij prawym przyciskiem myszy plik i wybierz Revert to this revision
  • Powinieneś dostać taką wiadomość 1 files revert to e19a77
  • +2

    Tak masz rację, to działa idealnie z narzędzi wiersza polecenia git, ale szukam odpowiedniej funkcji w TortoiseGit, który również używa narzędzi wiersza poleceń git w tle. – Alexander

    +0

    Wydaje się niemożliwe przy bieżącej wersji TortoiseGit. – Alexander

    +3

    Myślę, że wymyśliłem to z TortoiseGit, zobacz poprawioną odpowiedź. – mlibby

    18

    W TortoiseGit odpowiedź jest kliknięcie prawym przyciskiem myszy folder projektu i kliknij Pokaż dziennik, a następnie kliknij prawym przyciskiem myszy zmianę, którą chcesz przywrócić i cl ick Switch/Checkout do tego .... Pozwoli ci to następnie przejść od tego dziwnego miejsca w stosie commitów lub oddziału, jeśli planujesz popełnić i chcesz, żeby wszystko pozostało przy zdrowych zmysłach.

    +1

    Myślę, że to zmieni cały projekt – quangkid

    6

    Updated moją odpowiedź, na podstawie tych uwag:


    Załóżmy drzewo roboczy jest czysty i chcesz:

    1. kasę jakiś plik (i) jego wcześniejszej wersji
    2. Testowanie
    3. Przywróć bieżącą wersję

    1. Zamówienie jakiś plik (i) jego wcześniejszej wersji

      (a) Kliknij prawym przyciskiem myszy plik, który chcesz przywrócić, a Pokaż dziennik dla tego pliku

      enter image description here

      (b) Kliknij prawym przyciskiem myszy plik na liście plików i wykonaj Powróć do wersji macierzystej

      enter image description here

      enter image description here

      (c) powtórzenie (a), (b), aż pojawi się wszystkie pliki, które chcesz.

      enter image description here

    2. Testowanie

    3. Cofnij do aktualnej wersji

      (a) wykonać ... Przywróć w menu kontekstowym Eksploratora

      W ten sposób można wybrać plik (pliki), które chcesz przywrócić.

      (b) lub to szybki sposób: wykonać resetowania pułapka Zaloguj dialogowym

      ten sposób wszystkie zmienione pliki przywrócone. (=> Utracone wszystkie pracujące dir zmian)

      enter image description here

      enter image description here

    (Testowane na TortoiseGit 1.8.16.1, 2.6.4.windows gFW.1, Win 10 64bit)

    +0

    To jest nieprawidłowe. Jaka jest wersja TortoiseGit? Nie wydaje mi się, że "Przywróć wersję nadrzędną" jest już obecny. Przywracanie służy do niszczenia lokalnych zmian obszaru roboczego. Pytanie tutaj polega na zwróceniu się do starszej wersji i powrocie do aktualnej wersji później, a nie zniszczeniu obecnej wersji. –

    +0

    Funkcja przywracania wciąż robi coś innego niż to, czego szukał pytający. –

    4

    Jest również możliwe, aby uzyskać konkretny plik:

    • prawym przyciskiem myszy na plik
    • wybrać element menu: Git Pokaż dziennik

    TortoiseGit wyświetl okno z listą wszystkich wersji

    • Kliknij poprzednią wersję (2)

    na liście w dolnej części okna pokazuje wszystkie pliki związane z popełnić

    • Znajdź plik szukasz zobaczyć
    • prawym przyciskiem myszy na ten plik i zapisać korekta
    • to uratuje tę poprzednią wersję pliku z numerem popełnienia połączonego plik

    na przykład: - oryginalny plik jest plik .txt - wersja 2 zostanie zapisany jako plik-67b51a8.txt

    Używam TortoiseGit v2.2.0.0

    +0

    To jest najlepsza odpowiedź! pozostałe odpowiedzi prawdopodobnie dotyczą poprzednich wersji TortoiseGit, zanim dodały tę funkcję. – Justin

    0

    Dla Tortoise Version 2.3.0:

    Można to zrobić na kilka sposobów , ale myślę, że jest najszybszy, że:

    1. prawym przyciskiem myszy na pliku
    2. Kliknij opcję menu „Diff z poprzednią wersją”
    3. prawym przyciskiem myszy na w lewo (poprzednia strona) wersja pliku
    4. Kliknij opcję menu „Użyj tego cały plik”
    5. Zapisz zmiany (Ctrl + S)
    Powiązane problemy