2009-11-17 12 views
135

Czy możliwe jest wykonanie odpowiednika git checkout z poziomu Eclipse za pomocą wtyczki EGit?Eclipse git checkout (aka, revert)

Mam plik, który został zmodyfikowany. Chcę odrzucić zmiany i przywrócić plik z powrotem do repozytorium źródłowego. W Subversion nazywa się to revert. W git ekwiwalent jest kasą.

Nie mogę znaleźć żadnej pozycji menu w sekcji Zespół, która wygląda na kasę lub cofnij. Używam EGit 0.6.0.

+5

git ssie! Nie wykaże, co zamierzasz przywrócić, zanim go przywrócisz. Subversion da ci miłe okno potwierdzenia z listą plików, które zamierzasz przywrócić. Możesz więc wybrać te, które chcesz przywrócić lub anulować na miejscu. Wstyd na super potężnym git. – JohnPristine

+3

@JohnPristine Wtyczka Eclipse git (egit) to taka, która wyświetla okno potwierdzenia zamiast samego git. –

+0

Kliknij prawym przyciskiem plik, który chcesz przywrócić, a następnie wybierz opcję "Zastąp". I zgadzam się, Git jest do bani. – DhafirNz

Odpowiedz

264

Można to zrobić poprzez menu kontekstowe "Zamień na/Plik w indeksie Git" na pliku w widoku pakietu.

+5

Co zrobić, jeśli plik nie istnieje w przestrzeni roboczej (jeszcze/żadnych więcej)? – zedoo

+0

@zedoo Jeśli plik nie istnieje, otwórz widok "Git Staging", kliknij prawym przyciskiem myszy usunięty plik na liście "Zmiany nieoparte" i wybierz "Zastąp HEAD Revision" –

43

Można to osiągnąć, wykonując (twardy) reset. W menu kontekstowym projektu wybierz Zespół> Zresetuj do ..., wybierz "HEAD" i "Hard" jako typ resetowania.

Należy pamiętać, że spowoduje to utratę zmian WSZYSTKICH plików. Aby przywrócić tylko jeden plik, zobacz this answer.

+0

Po prostu dowiedziałem się na własnej skórze, że commit również robi to samo - zatwierdza WSZYSTKIE pliki zamiast tylko wybranego pliku. –

+0

Dobrze, ale przynajmniej możesz _c_ odznaczyć pliki w oknie dialogowym zatwierdzania ... Btw: Złożyłem błąd do resetowania https://bugs.eclipse.org/bugs/show_bug.cgi?id=295423 – simon

+5

Git support in Z tego powodu Eclipse jest naprawdę gorszy od CVS i SVN! Funkcja CVS "Replace with latest from HEAD" jest dla mnie bardzo ważna. – kosoant

3

Funkcjonalność jest faktycznie tam, ale może nie być oczywista:

  • Upewnij quickdiff jest włączony z rewizji git i linia bazowa quickdiff jest HEAD (jest to ustawienie domyślne).
  • Otwórz plik, który chcesz przywrócić.
  • Zaznacz wszystko (Ctrl + A)
  • prawym przyciskiem myszy na pasku quickdiff
  • Wybierz "Przywróć wybór"
  • Zapisz

btw, powróci w git slangu oznacza utworzyć nowy zobowiązać się do przywróć wcześniejsze zatwierdzenie.

+0

Do pracy z quickdiff tutaj jest szybkie wprowadzenie: http://wiki.eclipse.org/EGit/User_Guide/State#Quickdiff –

16

w Eclipse Wersja: 3.7.0

w "zespołu Synchronizacja perspektywy" -> kliknij prawym przyciskiem myszy na pliku/folderu w widoku zsynchronizować -> nadpisać

+0

, co było jednym z najłatwiejszych do wykonania. Wyskakuje, aby potwierdzić, że chcesz zastąpić lokalne zmiany. – Karidrgn

12

Inną możliwością jest za pomocą Git Staging view:

  • Otwarte Git Staging widok naciskając Ctrl + 3 lub Command + 3 i wpisując:
    staging
  • Jeśli widok nie wyświetla jeszcze Twojego repozytorium, kliknij projekt lub plik
  • Powinieneś teraz zobaczyć pliki zmodyfikowane w sekcji Unstaged Zmiany
  • dwukrotnie kliknąć na plik Unstaged
  • teraz zobaczyć porównać widok z wersją na lewo i wersji sprzed zmian na prawo

teraz, aby cofnąć tylko niektóre zmiany w pliku, wykonaj następujące czynności:

  • w widoku porównania, wybierz jeden ze swoich zmienionych linii
  • Wybierz Copy obecnych zmian od prawej do lewej pozycji paska narzędzi

uczyni to lewa strona odpowiada na prawą stronę do tej zmiany. Zapisz plik, aby zakończyć cofanie.

Aby cofnąć wszystkie zmiany:

  • W widoku pomostowym, kliknij prawym przyciskiem myszy na plik Unstaged
  • Wybierz Zamień plik w indeksie Git

Można również wybrać więcej niż jeden plik niezarejestrowany, a następnie kliknij prawym przyciskiem myszy.

+0

Zastanawiam się, dlaczego ta odpowiedź ma mniej głosów. Wolę oznaczyć to najlepiej; nigdy bym się nie pomyślał. Dzięki @robinst – HarsH1610

9

Przywróć pojedynczy plik, przechodząc do Okno> Pokaż Widok> Inne> Git Staging> Unstaged Zmiany

Wybierz plik (ów), które chcesz przywrócić. Kliknij prawym przyciskiem myszy i wybierz: Zastąp HEAD rewizją

Uwaga: tego kroku nie można cofnąć.

(używam Eclipse Wersja: 3.7.2 Egit wersji 2.3.1.201302201838-R)

4

Otwarte zespołu Synchronizacja. Znajdź plik i kliknij prawym przyciskiem myszy -> Zastąp.

UPDATE

w Eclipse Luna (4.4.2) Otwórz zespołu Synchronizacja. Znajdź plik i kliknij prawym przyciskiem myszy -> "Przywróć ..."

6

Dla powrotu, można kliknąć prawym przyciskiem myszy na pliku/katalogu, który chcesz, a następnie wybierz Zamień ->HEAD wersja

+0

Czy ma zastosowanie do dowolnej wtyczki Git w Eclipse? Wszystko działało dobrze z Egit. – johnnieb

+0

AKTUALIZACJA: W Eclipse Mars i Luna SR2 (wbudowany Git) działało tak. – Mag

1

Aby przywrócić cały plik danych repozytorium:

kliknij folder, który chcesz zrobić korektę, a następnie przejść do GitStaging enter image description here