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.


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.


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ź .


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


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.


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)


7

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


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óć ...”


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.


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

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.