Eclipse git checkout (также известный как возврат)


140

Можно ли сделать эквивалент git checkoutиз Eclipse с помощью плагина EGit?

У меня есть файл, который был изменен. Я хочу отменить изменения и вернуть файл обратно в исходный репозиторий. В Subversion это называется откатом. В git эквивалентом является оформление заказа.

Я не могу найти ни одного пункта меню в разделе «Команда», который выглядит как «оформить заказ» или «вернуться». Я использую EGit 0.6.0.


6
мерзавец! Он не покажет вам, что вы собираетесь отменить, пока вы не отмените это. Subversion выдаст вам красивое окно подтверждения со списком файлов, которые вы собираетесь восстановить. Таким образом, вы можете выбрать, какие из них вы хотите отменить или отменить на месте. Позор сверхмощному мерзавцу.
JohnPristine

5
@JohnPristine Подключаемый модуль Eclipse git (egit) - это тот плагин, который будет показывать окно подтверждения, а не сам git.
Брэд Купит

Щелкните правой кнопкой мыши файл, который нужно восстановить, затем выберите «Перезаписать». И я согласен, Git - отстой.
DhafirNz

В 2016 году в eGit версии 4.5.0 я не вижу «Перезаписать». Похоже, теперь это «Заменить на ...» «Пересмотр HEAD»
Эд Рэндалл

Ответы:


274

Это можно сделать через контекстное меню «Заменить / File в индексе Git» в файле в представлении пакета.


5
Что делать, если файл не существует в рабочей области (еще / больше)?
zedoo

@zedoo Если файл не существует, откройте представление «Git Staging», щелкните правой кнопкой мыши удаленный файл в списке «Unstaged Changes» и выберите «Replace with HEAD Revision»
Vlasta Dolejs

42

Вы можете добиться этого, выполнив (полный) сброс. В контекстном меню проекта выберите «Команда»> «Сбросить в ...», выберите «ГОЛОВКА» и «Жесткий» в качестве типа сброса.

Обратите внимание, что при этом вы потеряете изменения ВСЕХ файлов. Чтобы восстановить только один файл, см. Этот ответ .


Я только что на собственном опыте выяснил, что фиксация также делает то же самое - фиксирует ВСЕ файлы, а не только выбранный файл.
Стив Куо

Да, но , по крайней мере , вы можете отменить выбор файлов в диалоге фиксации ... Btw: Я подал ошибку для сброса bugs.eclipse.org/bugs/show_bug.cgi?id=295423
SIMON

5
Из-за этого поддержка Git в Eclipse действительно уступает CVS и SVN! Для меня очень важна функция CVS «Заменить последней из HEAD».
kosoant

@kosoant Eclipse может сделать это и с Git. Смотрите этот ответ
Брэд Купит

3
Он прямо спрашивает о возврате одного файла, а не всех.
Зофрен

18

в версии Eclipse: 3.7.0

в «Перспектива Team Synchronizing» -> щелкните правой кнопкой мыши файл / папку в режиме синхронизации -> перезаписать


это было одним из самых простых в исполнении. Появится всплывающее окно, подтверждающее, что вы хотите отменить локальные изменения.
Karidrgn 02

При этом удалялись новые файлы, неустановленные изменения, вот что мне было нужно.
Кату

12

Другая возможность - использовать представление Git Staging :

  • Откройте представление Git Staging , нажав Ctrl + 3 или Command + 3 и набрав
    staging
  • Если в представлении еще нет вашего репозитория, щелкните проект или файл
  • Теперь вы должны увидеть файлы, которые вы изменили, в разделе « Неустановленные изменения ».
  • Дважды щелкните неустановленный файл
  • Теперь вы видите сравнение с вашей версией слева и версией до изменений справа.

Теперь, чтобы отменить только некоторые изменения в файле, сделайте следующее:

  • В режиме сравнения выберите одну из измененных строк.
  • Выберите элемент панели инструментов Копировать текущее изменение справа налево.

Это приведет к тому, что левая сторона будет соответствовать правой стороне для этого изменения. Сохраните файл, чтобы завершить отмену.

Чтобы отменить все ваши изменения:

  • В промежуточном представлении щелкните правой кнопкой мыши неустановленный файл.
  • Выберите " Заменить файлом" в индексе Git.

Вы также можете выбрать несколько неустановленных файлов и затем щелкнуть правой кнопкой мыши.


Интересно, почему этот ответ получил так мало голосов. Я бы предпочел отметить это лучшим; никогда бы не подумал сам. Спасибо @robinst
HarsH

11

Верните один файл, выбрав « Окно»> «Показать вид»> «Другое»> «Git Staging»> «Неустановленные изменения»

Выберите файл (ы), которые хотите восстановить. Щелкните правой кнопкой мыши и выберите « Заменить версией HEAD».

Обратите внимание, что этот шаг нельзя отменить.

(Я использую версию Eclipse: 3.7.2 Egit версии 2.3.1.201302201838-r)


7

Для возврата вы можете щелкнуть правой кнопкой мыши нужный файл / каталог, а затем выбрать « Заменить на» -> Версия HEAD.


Применимо ли это к любому плагину Git в Eclipse? С Эгитом все работало нормально.
johnnieb

ОБНОВЛЕНИЕ: в Eclipse Mars и Luna SR2 (встроенный Git) это работало так.
Mag

4

Откройте Team Synchronizing. Найдите файл и щелкните правой кнопкой мыши -> Перезаписать.

ОБНОВИТЬ

В Eclipse Luna (4.4.2) Open Team Synchronizing. Найдите файл и щелкните правой кнопкой мыши -> «Вернуть ...»


3

Функциональность есть, но может быть неочевидной:

  • Убедитесь, что quickdiff включен в версии git, а базовая линия quickdiff - HEAD (это значение по умолчанию).
  • Откройте файл, который хотите восстановить.
  • Выбрать все (Ctrl-A)
  • Щелкните правой кнопкой мыши на панели быстрого определения
  • Выберите «Отменить выбор».
  • Сохранить

Кстати, revert на git lingo означает создание нового коммита, чтобы отменить предыдущий коммит.


Чтобы работать с quickdiff, вот краткое введение: wiki.eclipse.org/EGit/User_Guide/State#Quickdiff
Валентин Деспа,

1

Чтобы вернуть весь файл к данным репозитория:

Щелкните папку, в которой вы хотите внести изменения, а затем перейдите в GitStaging введите описание изображения здесь

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.