No Git, como faço para descobrir qual é a minha revisão atual?

167

Eu só quero saber qual é o número da minha versão atual.

TIMEX
fonte
Encontrei essa pergunta enquanto procurava uma maneira de obter a revisão atual para usá-la em outros comandos git. Mas quando li as respostas, descobri: "Oh, espere, eu não preciso disso, posso apenas usar HEADna verdade".
Antoine Pinsard

Respostas:

228

O que você quer dizer com "número da versão"? É bastante comum marcar um commit com um número de versão e depois usar

$ git describe --tags

para identificar o HEAD atual, escrever todas as tags. Se você quer saber o hash do HEAD atual, provavelmente deseja:

$ git rev-parse HEAD

ou para o breve hash de revisão:

$ git rev-parse --short HEAD

Geralmente é suficiente:

$ cat .git/refs/heads/${branch-master}

mas isso não é confiável, pois a referência pode ser empacotada.

William Pursell
fonte
8
As referências podem ser compactadas .git/packed-refs, portanto, você provavelmente deve evitar o acesso direto .git/refs/. Basta usar git rev-parse master(ou git rev-parse refs/heads/masterse você precisar ser completamente inequívoco).
Chris Johnsen
108

Há muitas maneiras, git log -1é a mais fácil e a mais comum, acho

manojlds
fonte
1
Como faço para que um arquivo se torne uma versão anterior?
TIMEX
1
talvez você quer CABEÇA git checkout ^ - filename
manojlds
2
btw, isso oferece MUITO MAIS do que apenas a revisão atual e você terá que analisá-la consequentemente (portanto, não é a melhor / mais fácil / solução comum, imho)
RAM237
36

Isso fornece apenas a revisão.

git rev-parse HEAD
htanata
fonte
Penso que esta é a melhor resposta, uma vez que não depende da implementação. A resposta de William "cat .git / refs / heads / master" fornecerá o mesmo valor, mas não há garantia de que funcione no futuro se a implementação mudar.
Thagomizer 03/04/19
Concordado, esta é a melhor resposta. Uma breve menção da --shortopção a tornaria perfeita.
Bobby Jack
15

Isso fornece os primeiros dígitos do hash e eles são únicos o suficiente para usar como, digamos, o número da versão.

git rev-parse --short HEAD

Ken McConnell
fonte
0

abaixo funcionará com qualquer revisão enviada anteriormente, não apenas com HEAD

para o hash de revisão abreviado:

git log -1 --pretty=format:%h

para hash de revisão longa:

git log -1 --pretty=format:%H
Alexey Bychko
fonte