As vezes precisamos saber como estava um arquivo em uma determinada revisão, no commit anterior por exemplo, para isso podemos utilizar o comando abaixo:
1 |
$ git show <commit>:seu_arquivo |
Onde <commit> pode ser o sha1, assim:
1 |
$ git show a65a78549825b7c:seu_arquivo |
Mas na maioria das vezes queremos ver o arquivo em uma ou duas versões anteriores, para isso podemos fazer assim, que é bem mais fácil:
1 |
$ git show HEAD~2:seu_arquivo |
Onde HEAD é a sua revisão atual e o que vem depois do til ( ~ ) é o numero de revisões para trás. No exemplo acima estamos vendo o arquivo como ele era em duas revisões atrás.
Poderiamos utilizar o HEAD^1 que também funcionaria, mas muito provavelmente HEAD^2 não, isso porque o circunflexo não serve para voltar revisões mas sim para escolher de qual parent queremos pegar uma revisão, lembrando que um commit pode ter dois pais, como em um merge por exemplo.Para saber mais sobre o til ( ~ ) e o circunflexo ( ^ ), acesse o site abaixo que possui uma explicação bem completa:
http://www.paulboxley.com/blog/2011/06/git-caret-and-tilde
Curiosidade:
Coloque HEAD~~ no lugar de HEAD~2 e veja que também funciona, ou até HEAD~~~ no lugar de HEAD~3 e assim por diante.