Git Tag de la liste, l'affichage s'engager sha1 hachages
de sorte que le git tag
commande affiche la liste des étiquettes git
tag1
tag2
git tag -n
imprime l'étiquette de message
tag1 blah blah
tag2 blah blah
Quelle est la meilleure façon d'obtenir le hash de tag1 & point2 ?
- Pas une question que je envisager de demander séparément, mais je me demande pourquoi
git tag
(-n
ou une autre option...) ne montrent pas de commettre des hachages en premier lieu. C'est agréable de voir quelles solutions pour les gens, mais je considère que c'est un défaut de conception dans les options disponibles.
Vous devez vous connecter pour publier un commentaire.
Comment à ce sujet?
git show-ref --tags -d
. Déréférencé les balises sont traitée avec un^{}
.La
git tag
de commande est sous-développé. Un lot est souhaitée, mais manquants, comme plein de détails étiquette et des tags à la validation de l'histoire de l'ordre.J'aime ce lieu, qui donne exactement ce que je veux, mais ne peut pas obtenir de
git tag
:Cela donne une très belle couleur codée en vue de les étiquettes dans l'ordre chronologique inverse (comme elle le serait dans le journal est plein). De cette façon, non seulement vous faire voir les balises, vous pourrez également voir la présentation abrégée de hachages et les messages de validation de la balise s'engage.
J'ai un alias pour
git t
etgit tags
comme suit:Remarque: j'ai eu à utiliser bash redirection pour
git t
que Git n'a pas l'appui de l'appel d'un alias à partir d'un autre alias (qui est une déception).Si vous voulez voir de la validation de la date et de l'heure, essayez:
Vous pouvez utiliser d'autres formats de date dans le
--date
option, ainsi que le contrôle de la sortie en fonction de votre propre goût dans la--pretty
option. Les deux options sont bien documentés dans la git-le journal de la Documentation.git log
est puissant! Vous pouvez la faire apparaître exactement ce que vous voulez. Essayezgit log --tags --no-walk --date=iso-local --pretty='%C(auto)%h %cd%d %s'
. D'autres formats de date sont également possibles. Il suffit de regarder--date
dans la page d'aide. j'ai mis à jour ma réponse à inclure cette option.--pretty
et%H
. Merci pour le +1 🙂Annoté balises ont leur propre SHA−1, nous avons donc besoin de déréférencement d'eux. Cependant
léger balises ne peuvent pas être déréférencé, comme cela est déjà le point de commettre un. Pour
résoudre, nous devons liste du filtre et de la validation des objets:
Résultat avec un léger tags:
Résultat avec annoté tags:
git log --tags --oneline --no-walk
également déférence annoté automatiquement des balises. 🙂Pour obtenir le SHA1 saisi par toute sorte de ref (direction, tag...) l'utilisation
git rev-parse
:Il aura l'impression que le plein SHA1s, sur des lignes distinctes. Le
^0
suffixe est une syntaxe particulière, afin de veiller à ce que imprimer le SHA1 de la livraison indiqué par l'étiquette, qu'il est annoté ou non. (Annoté les balises sont des objets dans leur propre droit, qui contient un pointeur vers un commit avec des métadonnées. Si vous connaissez un tag est annoté, et que vous voulez la balise SHA1, il suffit de laisser tomber le^0
.)Bien sûr, vous ne devriez pas souvent besoin de faire cela, puisque toute commande Git d'accepter un SHA1 faut aussi accepter un tag!
J'ai eu une question similaire, mais je voulais le hachage de (plusieurs) des balises spécifiques. J'ai trouvé que les "show-ref" prendra une liste de tags, de ce fait le travail:
Cependant, quelques expérimentations avec "git show" a donné lieu à cette commande:
Depuis que je suis beaucoup plus familier avec l'utilisation de "montrer" que "show-ref", je trouve ce dernier plus facile à retenir et plus utile aussi.
Voir aussi le bon résumé dans Comment dire à qui engagent une balise points de Git?.
Les balises doivent être signés et/ou messaged. Léger balises n'ont pas de SHA1 des objets et sont juste refs. Sinon, essayez
git show
.git show tag1
git show tag2
fonctionne le mieux pour moi, merci 🙂Ceci donne une liste de tous les commits pour les balises. Annoté balises sont déréférencés. Envoyer grâce ici.
%(refname:short)
au lieu de%(refname)
.J'ai pris la commande de anatoly techtonik post ajouté le message clé de l'tags/s'engage et formaté comme nice cols.
Le résultat est une sortie identique à
git tag -n
mais avec la validation de hachage comme préfixe.Si vous voulez avoir le long de hachage au lieu de le court, yust remplacer
objectname:short
parobjectname
.