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.


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.


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


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

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


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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.