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.
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
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)
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.
HEAD
na verdade".Respostas:
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
para identificar o HEAD atual, escrever todas as tags. Se você quer saber o hash do HEAD atual, provavelmente deseja:
ou para o breve hash de revisão:
Geralmente é suficiente:
mas isso não é confiável, pois a referência pode ser empacotada.
fonte
.git/packed-refs
, portanto, você provavelmente deve evitar o acesso direto.git/refs/
. Basta usargit rev-parse master
(ougit rev-parse refs/heads/master
se você precisar ser completamente inequívoco).Há muitas maneiras,
git log -1
é a mais fácil e a mais comum, achofonte
Isso fornece apenas a revisão.
fonte
--short
opção a tornaria perfeita.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.
fonte
abaixo funcionará com qualquer revisão enviada anteriormente, não apenas com HEAD
para o hash de revisão abreviado:
para hash de revisão longa:
fonte