Pourquoi git log --decorate
n'affiche- t-il pas plus d'une balise par commit?
EDIT : Charles Bailey a trouvé la réponse (du moins dans mon cas)
Essentiellement, j'avais une balise qui pointait vers une autre balise qui pointait vers le commit. En raison de cette couche supplémentaire d'indirection, la balise n'apparaissait pas dans le journal. Je vais devoir corriger cela, dépérir en corrigeant notre script de marquage pour taguer correctement, ou par un script shell vaudou pour suivre récursivement les tags. Quoi qu'il en soit, je laisserai cette question juste pour référence au cas où quelqu'un le voudrait. (Je suis nouveau sur le débordement de pile, mais je suppose que c'est le bon protocole?)
... La question originale suit ...
Backstory: Nous utilisons GIT au travail pour le contrôle de code source, et nous avons pour politique de toujours baliser un commit lorsque nous déployons. (C'est en fait un script qui fait des balises, puis extrait la balise sur le serveur). Puisqu'il s'agit d'une application Web avec des serveurs de préparation et de production séparés, nous marquons souvent une version pour la préparation (à des fins de test ou autre), puis nous marquons plus tard le même commit pour la production.
C'est donc très souvent que nous avons plusieurs balises sur le même commit. Ce serait très bien de pouvoir voir cela dans le journal de texte, mais cela ne semble pas le supporter. Je travaille actuellement sur le problème en vérifiant manuellement la balise que je recherche ou en lançant gitk
. Bien que ces deux solutions fonctionnent, il me semble que c'est vraiment bizarre git log --decorate
de ne prendre en charge qu'une seule balise par commit par défaut.
J'ai fait quelques recherches sur Google, mais je n'ai pas trouvé grand-chose. Est-ce que je rate quelque chose d'évident?
PS (j'utilise en fait une chaîne de format personnalisée avec %d
, selon les pages de manuel et quelques tests rapides, c'est équivalent à --decorate
)
Réponses:
Note à propos de la balise de la balise (baliser une balise), qui est à l'origine de votre problème, comme l'a correctement souligné Charles Bailey dans le commentaire:
Assurez-vous d'étudier ce fil , car il n'est pas aussi facile de remplacer une balise signée:
git tag
page de manuel déconseille sérieusementgit tag -f B
de remplacer simplement un nom de balise "A
"n'essayez pas de recréer une balise signée avec
git tag -f
(voir l'extrait de fil ci-dessous)(il s'agit d'un cas de coin, mais assez instructif sur les balises en général, et cela vient d'un autre contributeur SO Jakub Narębski ):
la source
Cette version imprimera également le message de validation:
la source
Remarque: le commit 5e1361c de brian m. carlson (
bk2204
) (pour git 1.9 / 2.0 Q1 2014) traite d'un cas particulier en terme de décoration de log avec des balises:log: gérer correctement les décorations avec des balises chaînées
Exemple:
la source