Existe um comando Git rápido para ver uma versão antiga de um arquivo?

Existe algum comando no Git para ver (ou despejado para stdout, ou em $PAGER ou $EDITOR) uma versão particular de um arquivo em particular?

Você pode utilizar o git show:

$ git show REVISION:path/to/file

Substitua REVISION pela sua revisão real (pode ser uma SHA de commit Git, um nome de tag, um nome de filial, um nome de commit relativo, ou qualquer outra forma de identificar um commit em Git)

Por exemplo, para ver a versão do arquivo src/main.c de 4 commits atrás, use:

$ git show HEAD~4:src/main.c

Note que o caminho é da raiz do repositório, a menos que comece com ./ ou ../ para indicar um caminho relativo. Git para Windows requer cortes de avanço mesmo em caminhos relativos ao diretório atual. Para mais informações, veja a página de manual para git-show.

Comentários (32)

Fazer isto por data parece-se com isto:

git show HEAD@{2013-02-25}:./fileInCurrentDirectory.txt

Note que HEAD@{2013-02-25} significa "onde HEAD estava em 2013-02-25" neste repositório (utilizando o reflog), não "o último commit antes de 2013-02-25 neste ramo na história".

Comentários (6)

Se você gosta de GUIs, você pode usar gitk:

  1. Começa com o gitk:

     gitk /caminho/para/file
    1. Escolha a revisão na parte superior da tela, por exemplo, por descrição ou data. Por padrão, a parte inferior da tela mostra a diferença para essa revisão, (correspondente ao botão de rádio "patch").
  2. Para ver o arquivo para a revisão selecionada:

  • Clique no botão de rádio "árvore". Isso mostrará a raiz da árvore de arquivos nessa revisão.
  • Desloque-se para o seu ficheiro.
Comentários (5)