Comment lister toutes les balises contenant un commit?


227

Cette question est similaire à Comment lister toutes les balises pointant vers un commit spécifique dans git , mais avec une différence: je souhaite rechercher toutes les balises qui contiennent un commit spécifique dans l'arborescence de chaque balise, pas spécifiquement les fichiers marqués dans la balise lui-même (dans ce cas, seule la modification du Makefile a été balisée).


1
Vous ne pouvez pas marquer un fichier particulier - les balises pointent uniquement vers les validations. Vous voudrez peut-être modifier votre question avec plus de détails sur le problème que vous essayez vraiment de résoudre.
Mark Longair


Remarque: sous Windows, assurez - vous d'utiliser git 2.0.x (2014) si vous voulez git tag --containsde ne pas tomber en panne. Voir ma réponse ci
VonC

Réponses:


348
git tag --contains <commit>

2
J'ai essayé ça. Mais si la balise ne contient qu'un seul fichier, je crois qu'elle ne recherche que dans ce fichier. Il ne recherchera pas l'arbre. De plus, le référentiel sur lequel j'ai essayé est si gros git sous caution et a été SIGKILL.
2011

21
Les balises ne contiennent pas de fichiers. Ce ne sont que des marqueurs pour un commit. Cela dit, je ne pense pas que votre objection soit logique.
amalloy

Il ne doit pas me montrer le commit à cause du manque de mémoire dans ce cas. Savez-vous comment je peux surmonter cela?
2011

5
Existe-t-il un moyen de le faire contre les balises distantes? Similaire aux succursales:git branch -r --contains <commit>
Mike

23

Notez que vous avez besoin de git 2.0.x (Q3 2014) pour répertorier toutes les balises pour un certain commit si vous avez un grand dépôt

Voir commit cbc60b6 de Jean-Jacques Lafay ( lanfeust69) :

git tag --contains: éviter le débordement de pile

Dans les grands référentiels, l'implémentation de récursivité de contains(commit, commit_list)peut entraîner un débordement de pile. Remplacez la récursivité par une boucle pour la corriger.

Ce problème est plus apparent sous Windows que sous Linux, où la pile est plus limitée par défaut.

Voir aussi ce fil sur la liste msysGit .


9
Sans jeu de mots? ;-)
MikeSchinkel

3
@MikeSchinkel Eh bien ... du moins pas intentionnel .
VonC

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.