Как вернуть мои файлы, помеченные как удаленные в области неустановленных изменений промежуточной версии Git?

Я запускаю Eclipse Kepler Service Release 1 с egit для управления версиями. Я использую eclipse и egit всего несколько месяцев и еще не разбираюсь во всех его тонкостях. Я нашел здесь несколько связанных вопросов для git, но я действительно не понимаю, как использовать egit для выполнения того, что предлагают ответы.

Непосредственная проблема, с которой я столкнулся, заключается в том, что в дереве проекта не видны никакие файлы, кроме библиотек и WEB-INF под войной. Файлы отображаются в области неустановленных изменений промежуточного окна Git, помеченные знаком x как удаленные. Если это имеет значение, это проект jsp, на котором работает механизм приложений Google.

Что привело меня к этому моменту, так это попытка проверить основную ветку. Я получил сообщение об ошибке, что ветка не может найти 2 файла, после чего мои рабочие файлы в текущей ветке исчезли. Представление репозиториев Git показывает, что моя текущая ветка такая же, как и та, над которой я работал, поэтому эти файлы обычно должны быть видны.

Поскольку я никогда не удалял эти файлы, я понятия не имею, на каком этапе, по мнению egit, они находятся. У меня нет резервной копии, и в других моих ветках не было последних изменений.


person Community    schedule 20.12.2013    source источник


Ответы (1)


Вы всегда можете увидеть состояние Git в виде текстового оформления рядом с каждым узлом репозитория в представлении репозиториев перспективы Git. Обычно это должно отображать только имя ветки, но это также может быть что-то вроде «Интерактивная перебазировка», если Git останавливается для пользовательского ввода в середине операции.

Если это не показывает имя нужной вам ветки, то просто контекстное меню Switch-> [название ветки] должно вернуть вас к нужной ветке.

Если ничего не помогает, вы всегда можете отбросить все локальные изменения и сбросить локальный рабочий каталог до состояния любой фиксации (или ветки) с помощью контекстного меню->Reset->Hard и выбрать фиксацию (или ветвь), к которой вы хотите сбросить. Имейте в виду, что это стирает любые незафиксированные локальные изменения.

Если у вас возникнут дополнительные вопросы, прочтите очень подробное руководство пользователя EGit.

person Bananeweizen    schedule 20.12.2013
comment
Спасибо @Bananeweizen. У меня нет текстового оформления, только тег для удаления в неустановленных изменениях промежуточного окна. Представление репозитория показывает оформление проверки на ветке, в которой я хочу находиться. Будет ли стирание незафиксированных локальных изменений с аппаратным сбросом восстановить потерянные файлы или просто очистить окно неустановленных изменений? Я думаю, что руководство пользователя EGit говорит, что оно восстановит мои файлы, но никогда раньше не выполнял сброс, а также не зная, как git вообще попал в это состояние, заставляет меня ошибаться из-за осторожности. - person ; 21.12.2013
comment
Я бы проголосовал за ваш ответ, но пока не репутация, чтобы сделать это. - person ; 21.12.2013
comment
Я последовал совету @Bananeweizen и сделал полную перезагрузку текущей ветки. EGit восстановил отсутствующие файлы без проблем. Я до сих пор не знаю, что вызвало странное состояние, в которое попал EGit. - person ; 25.12.2013