Dans Git, comment déterminer quelle est ma révision actuelle?

167

Je veux juste savoir quel est mon numéro de version actuel.

TIMEX
la source
J'ai trouvé cette question pendant que je cherchais un moyen d'obtenir la révision actuelle afin de l'utiliser dans d'autres commandes git. Mais quand j'ai lu les réponses, j'ai compris: "Oh, attendez, je n'en ai pas besoin, je peux juste l'utiliser en HEADfait."
Antoine Pinsard

Réponses:

228

Qu'entendez-vous par «numéro de version»? Il est assez courant de marquer un commit avec un numéro de version puis d'utiliser

$ git describe --tags

pour identifier le HEAD actuel avec n'importe quelle balise. Si vous voulez dire que vous voulez connaître le hachage du HEAD actuel, vous voulez probablement:

$ git rev-parse HEAD

ou pour le hachage de révision court:

$ git rev-parse --short HEAD

Il suffit souvent de faire:

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

mais ce n'est pas fiable car la référence peut être emballée.

William Pursell
la source
8
Les références peuvent être intégrées .git/packed-refs, vous devriez donc probablement éviter d'accéder directement .git/refs/. Utilisez simplement git rev-parse master(ou git rev-parse refs/heads/mastersi vous devez être totalement sans ambiguïté).
Chris Johnsen
108

Il y a de nombreuses façons dont git log -1la plus simple et la plus courante

manojlds
la source
1
Comment faire d'un fichier une version précédente?
TIMEX
1
peut-être que vous voulez git checkout HEAD ^ - filename
manojlds
2
btw, cela donne BEAUCOUP PLUS que la simple révision actuelle et vous devrez l'analyser en conséquence (donc, pas la meilleure / la plus simple / la solution commune, à mon humble avis)
RAM237
36

Cela vous donne juste la révision.

git rev-parse HEAD
Htanata
la source
Je pense que c'est la meilleure réponse, car elle ne dépend pas de la mise en œuvre. La réponse de William "cat .git / refs / heads / master" fournira la même valeur, mais il n'y a aucune garantie que cela fonctionnera dans le futur si l'implémentation change.
Thagomizer
D'accord, c'est la meilleure réponse. Une brève mention de l' --shortoption la rendrait parfaite.
Bobby Jack
15

Cela vous donne les premiers chiffres du hachage et ils sont suffisamment uniques pour être utilisés comme un numéro de version.

git rev-parse --short HEAD

Ken McConnell
la source
0

ci-dessous fonctionnera avec toute révision précédemment poussée, pas seulement HEAD

pour le hachage de révision abrégé:

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

pour le hachage de révision long:

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