Восстановить файл из старого коммита в git - PullRequest
164 голосов
/ 08 июля 2011

У меня есть старый коммит, который я сделал несколько недель назад.Я хочу восстановить только один файл из этого коммита.Что мне делать?

Ответы [ 3 ]

190 голосов
/ 08 июля 2011
git checkout 'master@{7 days ago}' -- path/to/file.txt

Это не изменит HEAD, оно просто перезапишет локальный файл path/to/file.txt

См. man git-rev-parse для возможных спецификаций ревизии там (конечно,простой хеш (например, dd9bacb) подойдет)

Не забудьте зафиксировать изменение (после проверки ...)

77 голосов
/ 08 июля 2011
  1. Извлечение файла из вашего старого коммита через git checkout [Revision_Key] -- path/to/file.
  2. Добавить, зафиксировать, нажать соответствующим образом.
5 голосов
/ 16 апреля 2018

Мне нужно было восстановить недавний файл, записанный в git.Так что, просто чтобы повторить и дать другую перспективу, вам нужно сделать это, выполнив следующие два шага:

  1. git log -3
    Это показывает трисамые последние коммиты.Прочитайте комментарии и имя автора, чтобы определить, какую именно версию вы хотите.Запишите этот длинный идентификатор фиксации (т. Е. B6b94f2c19c456336d60b9409fb1e373036d3d71) для нужной версии фиксации.

  2. git checkout b6b94f2c19c456336d60b9409fb1e373036file ** 1014 id_jj 1014 id71jj4jjjjjjd7171_714И имя файла, который вы хотите восстановить.Убедитесь, что у вас есть пробел до и после двойного дефиса.

Есть много других способов сделать это.Но этот самый простой, который я помню.Надеюсь, это поможет.

ПРИМЕЧАНИЕ: Если вы находитесь в пути / папке вашего проекта, то нет необходимости вводить полный путь к файлу в команде извлечения.

...