Как я могу проверить конкретную версию одного файла в Git?
Как я могу проверить конкретную версию одного файла в git?
Я нашел эту почту в списке рассылки, в котором говорилось:
$ git checkout HEAD~43 Makefile
$ git reset Makefile
Но я не понимаю, как узнать "HEAD ~ 43", если я сделаю git log aFile
, как я могу узнать, какой "HEAD-43" я должен использовать?
И зачем мне нужно запускать git reset
для этого файла? Что он делает?
Ответы
Ответ 1
Вы знаете, что зафиксировать (то есть: конкретную ревизию), к которой принадлежит файл? Затем выполните:
git checkout <commit> <file>
Другая команда:
git checkout HEAD~N <file>
Идет, когда вы хотите получить версию файла из диапазона назад (что я делаю для ностальгии).
Ответ 2
HEAD~43
является просто деревенским, поэтому вы можете использовать хэш или тег. Вам нужно отделить дерево от имени файла с помощью --
, иначе оно будет считаться именем файла. Например.
git checkout v0.45 -- filename
git checkout HEAD^ -- filename
git checkout 16bb1a4eeaa9 -- filename
Ответ 3
HEAD~43
относится к фиксации (версии) файла. Вместо этого вы можете использовать хеш-код фиксации, который вы получаете от выполнения git log
в файле. Если вам нужен только файл, вам не нужно запускать git reset
; что необходимо только в том случае, если вы хотите переслать файл в текущую HEAD.