Como posso verificar uma versão específica de um arquivo no git?
Encontrei este e-mail na lista de e-mails que dizia:
$ git checkout HEAD~43 Makefile
$ git reset Makefile
Mas eu não entendo como descobrir 'HEAD ~ 43', se eu fizer um git log aFile
, como posso descobrir qual 'HEAD ~ 43' devo usar?
E por que preciso executar git reset
para esse arquivo? O que isso faz?
Respostas:
Você sabe a qual commit (isto é: a revisão específica) o arquivo pertence? Então faça:
O outro comando:
É para quando você deseja obter uma versão do arquivo de um intervalo atrás (o que eu faço por nostalgia).
fonte
HEAD~43
é apenas arborizado, então você pode usar um hash ou uma tag. Você tem que separar treeish do nome do arquivo com--
, caso contrário, ele será tratado como nome do arquivo. Por exemplo.fonte
HEAD~43
refere-se ao commit (versão) do arquivo. Em vez disso, você pode usar o hash de confirmação que obtém ao fazergit log
no arquivo. Se você deseja apenas o arquivo, não precisa executágit reset
-lo; isso só é necessário se você quiser encaminhar o arquivo para o HEAD atual.fonte