In Git, come posso capire qual è la mia attuale revisione?


167

Voglio solo sapere qual è il mio numero di versione attuale.


Ho trovato questa domanda mentre cercavo un modo per ottenere la revisione corrente per poterla usare in ulteriori comandi git. Ma quando ho letto le risposte, l'ho capito: "Oh aspetta, non ne ho bisogno, posso semplicemente usarlo HEAD".
Antoine Pinsard,

Risposte:


228

Cosa intendi con "numero di versione"? È abbastanza comune taggare un commit con un numero di versione e quindi utilizzarlo

$ git describe --tags

per identificare l'attuale HEAD e ogni tag. Se vuoi dire che vuoi conoscere l'hash dell'attuale HEAD, probabilmente vorrai:

$ git rev-parse HEAD

o per l'hash di revisione breve:

$ git rev-parse --short HEAD

Spesso è sufficiente fare:

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

ma questo non è affidabile in quanto l'arbitro potrebbe essere impaccato.


8
I ref possono essere impacchettati .git/packed-refs, quindi dovresti probabilmente evitare l'accesso diretto .git/refs/. Basta usare git rev-parse master(o git rev-parse refs/heads/masterse è necessario essere completamente inequivocabili).
Chris Johnsen,

108

Ci sono molti modi in cui git log -1è il più semplice e più comune, penso


1
Come faccio a rendere un file una versione precedente?
TIMEX,

1
forse vuoi git checkout HEAD ^ - nomefile
manojlds

2
a proposito, questo dà MOLTO ALTRO oltre alla semplice revisione attuale e dovrai analizzarla di conseguenza (quindi, non la soluzione migliore / più semplice / comune, imho)
RAM237

36

Questo ti dà solo la revisione.

git rev-parse HEAD

Penso che questa sia la risposta migliore, poiché non dipende dall'implementazione. La risposta di William "cat .git / refs / heads / master" fornirà lo stesso valore, ma non c'è garanzia che funzionerà in futuro se l'implementazione cambia.
Thagomizer,

D'accordo, questa è la risposta migliore. Una breve menzione --shortdell'opzione lo renderebbe perfetto.
Bobby Jack,

15

Questo ti dà le prime cifre dell'hash e sono abbastanza uniche da usare come dire un numero di versione.

git rev-parse --shORT HEAD


0

di seguito funzionerà con qualsiasi revisione precedentemente spinta, non solo HEAD

per l'hash di revisione abbreviata:

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

per l'hash di revisione lunga:

git log -1 --pretty=format:%H
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.