2017-10-04 1 views
0

Actuellement, notre CI appuie sur la dernière balise git, git describe --tags $(git rev-list --tags --max-count=1)Dernières git tag ne figurant pas avec git commande describe

Nous avons un scénario où un dev distant de marquage, mais l'étiquette apparaît uniquement avec la commande

git describe --abbrev=0 

l'étiquette n'apparaît pas avec la première commande.

Répondre

1

git rev-list --tags listera chaque validation accessible à partir de n'importe quelle variable, dans l'ordre chronologique inverse. L'ajout de --max-count=1 limite la sortie à la première validation qui serait autrement affichée. Donc, cette commande montre la plus récente validation qui a un tag.

Si un utilisateur marque un commit, mais ce n'est pas plus récent que chaque commit qui a déjà un tag, il n'apparaîtra pas. Je suppose, pour votre utilisation, que cela sonne bien - mais notez que c'est le plus récent commit, pas le plus récent tag.

Votre télécommande, mais ... est-elle synchronisée avec votre horloge locale?

Vous pouvez améliorer la situation en ajoutant l'indicateur --topo-order, ce qui garantit qu'une validation ne peut pas être répertoriée tant que tous ses enfants n'ont pas été répertoriés.

0

Il y a plusieurs façons d'obtenir la dernière balise git de la branche actuelle. Je viens de mentionner seulement des approches simples.

Réponse à votre question de façon la plus simple est d'utiliser cette fournira la dernière balise git

$ git describe --tags 

et une autre approche simple que vous avez déjà mentionné que vous faites que

$ git describe --tags --abbrev=0