292 votes

Montrer sur quel tag git vous êtes?

J'ai du mal à trouver l'étiquette qui est extraite.

Quand je fais:

 git checkout tag1
git branch
 

Je n'arrive pas à savoir sur quelle étiquette je suis. Il ne se connecte que:

 * (no branch)
master
 

Est-il possible de savoir quelle balise extraite, c'est-à-dire, dans l'exemple ci-dessus, «tag1». Je vous remercie!

461voto

bstpierre Points 12616

Edit: Jakub Narębski a plus de git-fu. La suite est beaucoup plus simple de commande fonctionne parfaitement:

git describe --tags

(Ou sans l' --tags si vous avez coché une annoté de la balise. Mon tag est léger, donc j'ai besoin de l' --balises.)

original de la réplique suivante:

git describe --exact-match --tags $(git log -n1 --pretty='%h')

Quelqu'un avec plus d'git-fu peut avoir une solution plus élégante...

Il exploite le fait que l' git-log rapporte le journal à partir de ce que vous avez consultés. %h imprime la version abrégée de hachage. Ensuite, git-describe --exact-match --tags trouve la balise (léger ou annotés) qui correspond exactement à ce commit.

L' $() de la syntaxe ci-dessus suppose que vous utilisez bash ou similaire.

30voto

Greg Points 46

git describe est une commande en porcelaine que vous devriez éviter:

http://git-blame.blogspot.com/2013/06/checking-current-branch-programically.html

Au lieu de cela, j'ai utilisé

git name-rev --tags --name-only $ (git rev-parse HEAD)

25voto

mipadi Points 135410

Lorsque vous découvrez une balise, vous avez ce qu'on appelle un "détaché de la tête". Normalement, Git la TÊTE de commit est un pointeur vers la direction que vous avez extrait. Toutefois, si vous découvrez quelque chose d'autre qu'une branche locale (d'une balise ou d'une branche distante, par exemple), vous avez une "isolé" -- vous n'êtes pas vraiment sur n'importe quelle branche. Vous ne devez faire aucune engage tout d'un décollement de la tête.

Il est bien de vérifier une balise si vous ne souhaitez pas apporter de modifications. Si vous êtes juste de l'examen du contenu des fichiers, ou vous voulez construire votre projet à partir d'une étiquette, il est normal d' git checkout my_tag et de travailler avec les fichiers, aussi longtemps que vous n'avez pas à faire toute la commet. Si vous voulez commencer à modifier des fichiers, vous devez créer une branche en fonction de la balise:

$ git checkout -b my_tag_branch my_tag

va créer une nouvelle branche appelée my_tag_branch à partir de my_tag. Il est sûr de valider les modifications sur cette branche.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X