Я удалил файл с Git и затем зафиксировал его, поэтому файл больше не работает в моей рабочей копии. Я хочу посмотреть содержимое этого файла, но на самом деле не восстановить его. Как я могу это сделать?
Просмотр удалённого файла в Git
Ответ 1
git show HEAD^:path/to/file
Вы можете использовать явный идентификатор фиксации или HEAD~n
для просмотра более старых версий или если с момента его удаления было более одного фиксации.
Ответ 2
Если это файл, который вы удалили некоторое время назад, а не хотите искать версию, вы можете использовать (в этом примере файл имеет имя foo
; вы можете используйте полный путь):
git show $(git rev-list --max-count=1 --all -- foo)^:foo
В вызове rev-list
отображаются все изменения foo
, но отображается только один. Поскольку rev-list
перечисляет в обратном хронологическом порядке, то то, что он перечисляет, является последней ревизией, которая изменила foo
, которая была бы фиксацией, удаленной foo
. (Это основано на предположении, что git не позволяет удаленному файлу быть изменен и все же остается удаленным.) Вы не можете просто использовать версию, которая rev-list
возвращает как-есть, потому что foo
больше не существует. Вы должны попросить тот, который находится перед ним, который содержит последнюю ревизию файла, поэтому ^
в git show
.
Ответ 3
Так как вы можете не вспомнить точный путь, вы можете вместо этого получить sha1 из журнала git, тогда вы можете просто выпустить
git cat-file -p <sha1>