Eclipse Git Checkout (aka, przywróć)

139

Czy można zrobić odpowiednik git checkoutz poziomu Eclipse przy użyciu wtyczki EGit?

Mam plik, który został zmodyfikowany. Chcę odrzucić zmiany i przywrócić plik do tego, co jest w repozytorium źródłowym. W Subversion nazywa się to przywracaniem. W git odpowiednikiem jest checkout.

Nie mogę znaleźć żadnego elementu menu w sekcji Zespół, który wygląda jak do kasy lub przywróć. Używam EGit 0.6.0.

Steve Kuo
źródło
6
git jest do bani! Nie pokaże Ci, co masz zamiar przywrócić, zanim to zrobisz. Subversion wyświetli ładne okno potwierdzenia z listą plików, które zamierzasz przywrócić. Możesz więc wybrać, które chcesz przywrócić lub anulować na miejscu. Wstyd super potężnemu dupkowi.
JohnPristine,
5
@JohnPristine Wtyczka Eclipse git (egit) to ta, która wyświetla okno potwierdzenia, a nie sam git.
Brad Cupit,
Kliknij prawym przyciskiem myszy plik, który chcesz przywrócić, a następnie wybierz „Zastąp”. I zgadzam się, Git jest do bani.
DhafirNz
W 2016 r. EGit w wersji 4.5.0 nie widzę „Zastąp”. Wygląda na to, że teraz brzmi „Zamień na…” „Wersja HEAD”
Ed Randall

Odpowiedzi:

274

Można to zrobić za pomocą menu kontekstowego „Zamień na / Plik w indeksie Git” w pliku w widoku pakietu.

Sergii Rudchenko
źródło
5
A co jeśli plik nie istnieje w obszarze roboczym (jeszcze / już)?
zedoo
@zedoo Jeśli plik nie istnieje, otwórz widok „Git Staging”, kliknij prawym przyciskiem myszy usunięty plik na liście „Unstaged Changes” i wybierz „Replace with HEAD Revision”
Vlasta Dolejs
42

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

Pamiętaj, że robiąc to, utracisz zmiany WSZYSTKICH plików. Aby przywrócić tylko jeden plik, zobacz tę odpowiedź .

Szymon
źródło
Właśnie odkryłem na własnej skórze, że zatwierdzanie robi to samo - zatwierdza WSZYSTKIE pliki zamiast tylko wybranego pliku.
Steve Kuo
Racja, ale przynajmniej można odznaczyć pliki w oknie dialogowym zatwierdzenia ... BTW: I złożony bug do resetowania bugs.eclipse.org/bugs/show_bug.cgi?id=295423
simon
5
Z tego powodu obsługa Git w Eclipse jest naprawdę gorsza od CVS i SVN! Funkcjonalność CVS "Zamień na najnowsze z HEAD" jest dla mnie naprawdę ważna.
kosoant
@kosoant Eclipse może to zrobić również z Git. Zobacz tę odpowiedź
Brad Cupit
3
Prosi wyraźnie o przywrócenie jednego pliku, a nie wszystkich.
Zofren,
18

w wersji Eclipse: 3.7.0

w „Perspektywie Synchronizacja zespołu” -> kliknij prawym przyciskiem myszy plik / folder w widoku synchronizacji -> nadpisz

ekeren
źródło
był to jeden z najłatwiejszych do wykonania. Tworzy wyskakujące okienko, aby potwierdzić, że chcesz zastąpić lokalne zmiany.
Karidrgn
To usunęło nowe pliki, niestabilne zmiany, czego potrzebowałem.
Katu
12

Inną możliwością jest użycie widoku Git Staging :

  • Otwórz widok Git Staging , naciskając Ctrl + 3 lub Command + 3 i wpisując
    staging
  • Jeśli widok nie pokazuje już Twojego repozytorium, kliknij projekt lub plik
  • Teraz powinieneś zobaczyć pliki zmodyfikowane w Unstaged Zmiany sekcji
  • Kliknij dwukrotnie plik niestabilizowany
  • Zobaczysz teraz widok porównania z wersją po lewej stronie i wersją przed zmianami po prawej

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

  • W widoku porównania wybierz jedną ze zmienionych linii
  • Wybierz element paska narzędzi Kopiuj bieżącą zmianę z prawej do lewej

Spowoduje to, że lewa strona będzie odpowiadać prawej stronie w przypadku tej zmiany. Zapisz plik, aby zakończyć cofanie.

Aby cofnąć wszystkie zmiany:

  • W widoku pomostowym kliknij prawym przyciskiem myszy niestabilizowany plik
  • Wybierz opcję Zamień na plik w indeksie Git

Możesz także wybrać więcej niż jeden niestabilizowany plik, a następnie kliknąć prawym przyciskiem myszy.

robinst
źródło
Zastanawiam się, dlaczego ta odpowiedź otrzymała tak mniej głosów. Wolałbym zaznaczyć to najlepiej; nigdy bym się nie domyślił. Dzięki @robinst
HarsH
11

Przywróć pojedynczy plik, przechodząc do opcji Okno> Pokaż widok> Inne> Git Staging> Unstaged Changes

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

Pamiętaj, że tego kroku nie można cofnąć.

(Używam wersji Eclipse: 3.7.2 Egit w wersji 2.3.1.201302201838-r)

TA
źródło
7

Aby przywrócić , możesz kliknąć prawym przyciskiem myszy żądany plik / katalog, a następnie wybrać Zastąp na -> Wersja HEAD

user3812819
źródło
Czy dotyczy jakiejkolwiek wtyczki Git w Eclipse? Działało dobrze z Egit.
johnnieb
AKTUALIZACJA: W Eclipse Mars i Luna SR2 (wbudowany Git) działało tak.
Mag
4

Otwórz synchronizację zespołu. Znajdź plik i kliknij prawym przyciskiem myszy -> Zastąp.

AKTUALIZACJA

W Eclipse Luna (4.4.2) Open Team Synchronizing. Znajdź plik i kliknij prawym przyciskiem myszy -> „Przywróć ...”

Geddon
źródło
3

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

  • Upewnij się, że funkcja quickdiff jest włączona z wersją git, a linia bazowa quickdiff to HEAD (jest to ustawienie domyślne).
  • Otwórz plik, który chcesz przywrócić.
  • Zaznacz wszystko (Ctrl + A)
  • Kliknij prawym przyciskiem myszy pasek quickdiff
  • Wybierz „Cofnij wybór”
  • Zapisać

btw, powrót w git lingo oznacza utworzenie nowego zatwierdzenia, aby przywrócić wcześniejsze zatwierdzenie.

robinr
źródło
Aby pracować z quickdiff, oto krótkie wprowadzenie: wiki.eclipse.org/EGit/User_Guide/State#Quickdiff
Valentin
1

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

Kliknij folder, który chcesz zmienić, a następnie przejdź do GitStaging wprowadź opis obrazu tutaj

adhg
źródło