Я удалил файл с помощью Git, а затем зафиксировал его, поэтому файла больше нет в моей рабочей копии. Я хочу просмотреть содержимое этого файла, но не восстановить его. Как я могу это сделать?
105
git show HEAD^:path/to/file
Вы можете использовать явный идентификатор фиксации или HEAD~n
просмотреть более старые версии, или если с тех пор, как вы ее удалили, было более одной фиксации.
path/to/file
это полный путь от начала проекта (верхний каталог репозитория).fatal: Invalid object name 'HEAD^'.
(я должен упомянуть, что у меня только "Initial commit")Если это файл, который вы удалили некоторое время назад и не хотите искать ревизию , вы можете использовать (файл назван
foo
в этом примере; вы можете использовать полный путь):В
rev-list
Призыва выглядит для всех редакций ,foo
но только списки одного. Посколькуrev-list
списки ведутся в обратном хронологическом порядке, то в нем указывается последняя измененная ревизия,foo
то есть удаленная фиксацияfoo
. (Это основано на предположении, что git не позволяет изменять удаленный файл и при этом оставаться удаленным.) Вы не можете просто использовать ревизию, котораяrev-list
возвращается как есть, потому что тамfoo
больше не существует. Вы должны запросить тот, который находится непосредственно перед ним, который содержит последнюю версию файла, следовательно, файл^
ingit show
.источник
**/foo
если не знаете путь (это будет работать для команды rev-list, но не для команды show. Однако с фиксацией из команды rev-list вы можете найти путь).Поскольку вы можете не вспомнить точный путь, вместо этого вы можете получить sha1 из журнала git, тогда вы можете просто ввести
источник
git whatchanged --no-abbrev
это дает результат, аналогичный журналу git (или svn).