2012-09-07 2 views
3

При удалении файлов из репозитория Git я также случайно удалил файл с незавершенными изменениями.Случайно удален из репозитория Git

Возврат файла «Удалить» приводит к возврату файла без незафиксированных изменений. Есть ли способ вернуть незафиксированное состояние файла?

Принимая советы от jmort253 Heres шаги ...

  1. Внесены изменения в файл (он ранее был совершен & толкнул так он находится в мерзавца)
  2. Использование SourceTree, случайно удалил некоторые файлы включая вышеупомянутый файл.
  3. Вдавлено в исходное положение
  4. Поняв, что совершила ошибку, измените фиксацию (используя SourceTree).
  5. Файл вернётся назад, но отсутствует промах, сделанный на этапе 1.

    Надеюсь, что это поможет.

+0

Вы должны описать шаги, которые вы сделали, чтобы случайно удалить файл; иначе люди просто должны угадать, что вы сделали, что может вам не помочь. Используйте эту ссылку [edit], чтобы обновить свой вопрос. Удачи! – jmort253

+0

Я решил, что все это потеряно. Потенциал переписывания улучшил код ... go figure. – manuman

+0

Что смешно, я был в твоей обуви. Иногда удаление кода имеет хорошие результаты. :) Рад, что это сработало для вас! – jmort253

ответ

2

Вкратце: нет. Неопределенный файл (почти по определению) - файл, в котором система управления версиями ничего не знает, поэтому система управления версиями больше не сможет вам помочь, как если бы вы удалили случайный файл на свой диск (например, файл который никогда не был в иерархии файлов вашего репозитория).

То есть, если у вас нет stash в предыдущем состоянии вашего репозитория, который включает в себя неустановленные изменения? (git stash list должен дать вам идею)

Если вы этого не сделаете, вы должны обратиться к методам восстановления файлов, подходящим для вашей операционной системы и файловой системы.

1

Вы должны попробовать следующее заглядывая в reflog:

git rev-list --all --oneline mylostfile.txt 

замена mylostfile.txt с фактическим путем к файлу.

Если файл существует в git, либо внутри фиксации, на которую указывает ветка, либо потерянный фиксатор, он будет отображаться.

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

Если он не отображается, а git, вероятно, не знает об этом файле.

Смежные вопросы