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.
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
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)
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.
HEAD
fait."Réponses:
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
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:
ou pour le hachage de révision court:
Il suffit souvent de faire:
mais ce n'est pas fiable car la référence peut être emballée.
la source
.git/packed-refs
, vous devriez donc probablement éviter d'accéder directement.git/refs/
. Utilisez simplementgit rev-parse master
(ougit rev-parse refs/heads/master
si vous devez être totalement sans ambiguïté).Il y a de nombreuses façons dont
git log -1
la plus simple et la plus courantela source
Cela vous donne juste la révision.
la source
--short
option la rendrait parfaite.Cela vous donne les premiers chiffres du hachage et ils sont suffisamment uniques pour être utilisés comme un numéro de version.
la source
ci-dessous fonctionnera avec toute révision précédemment poussée, pas seulement HEAD
pour le hachage de révision abrégé:
pour le hachage de révision long:
la source