Если я запускаю `git checkout - - .` на ветке.Можно ли как-нибудь вернуть эти файлы? - PullRequest
1 голос
/ 04 апреля 2019

Если у меня есть масса незафиксированных изменений файла, и по какой-то причине запустите git checkout -- для файла, а затем поймете, что он мне нужен - есть ли способ сделать это?

Попробовал git checkout HEAD <filename>но я думаю, что HEAD не там, где эти файлы больше существуют?

Ответы [ 2 ]

4 голосов
/ 04 апреля 2019

Нет, git не записывал эти состояния файлов нигде в описываемом вами сценарии.

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

0 голосов
/ 04 апреля 2019

Попробуйте приведенные ниже команды, возможно, одна из них вам поможет.

Если удаление не было зафиксировано, приведенная ниже команда восстановит удаленный файл в рабочем дереве.

$ git checkout -- <file>

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

$ git ls-files --deleted

Если удаление было зафиксировано, найдите коммит, где оно произошло, а затем восстановите файл изthis commit.

$ git rev-list -n 1 HEAD -- <file>
$ git checkout <commit>^ -- <file>

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

$ git log --diff-filter=D --summary
...