Dans mon référentiel, j'ai créé des balises à l'aide des commandes suivantes.
git tag v1.0.0 -m 'finally a stable release'
git tag v2.0.0 -m 'oops, there was still a major bug!'
Comment listez-vous toutes les balises dans le référentiel?
git tag
devrait suffire. Voir page de manuel git tag
Vous avez aussi:
git tag -l <pattern>
Liste des étiquettes avec des noms correspondant au modèle donné (ou toutes si aucun modèle n’est donné).
Taper "git tag" sans argument, répertorie également toutes les balises.
Plus récemment (" Comment trier les balises git? ", pour Git 2.0+)
git tag --sort=<type>
Trier dans un ordre spécifique.
Le type supporté est:
- "
refname
" (ordre lexicographique),- "
version:refname
" ou "v:refname
" (les noms de balises sont traités comme des versions).Ajoutez le préfixe "-" pour inverser l'ordre de tri.
Cela énumère les deux:
Remarque: le article de git ready sur le balisage désapprouve les balises légères.
Sans argument, git tag crée une balise "légère" qui est essentiellement une branche qui ne se déplace jamais.
Les balises légères sont néanmoins utiles, peut-être pour marquer une bonne version (ou une mauvaise) connue, ou un groupe de commits que vous devrez peut-être utiliser à l'avenir.
Néanmoins, vous ne voudrez probablement pas utiliser ce type de balises .Normalement, vous voulez au moins passer l'option -a pour créer une balise non signée ou la signer avec votre clé GPG via les options -s ou -u.
Cela étant dit, Charles Bailey indique qu'un "git tag -m "..."
" implique en réalité une balise appropriée (non signée annotée) (option " -a
'), et pas un poids léger. Donc, vous êtes bon avec votre commande initiale.
Cela diffère de:
git show-ref --tags -d
Qui liste les balises avec leurs commits (voir " Liste de balises Git, affiche les hachages de commit sha1 ").
Notez le -d
afin de déréférencer l’objet de la balise annotée (qui a son propre commit SHA1) et d’afficher le commit réel étiqueté.
De même, git show --name-only <aTag>
listerait la balise et la validation associée.
Pour lister les tags que je préfère:
git tag -n
L'indicateur -n
affiche la première ligne du message d'annotation avec la balise, ou la première ligne du message de validation si la balise n'est pas annotée.
Vous pouvez également utiliser git tag -n5
pour afficher les 5 premières lignes de l'annotation.
De plus, git show-ref
est plutôt utile, vous pouvez donc associer directement tags avec le correspondant commits:
$ git tag
osgeolive-6.5
v8.0
...
$ git show-ref --tags
e7e66977c1f34be5627a268adb4b9b3d59700e40 refs/tags/osgeolive-6.5
8f27e65bddd7d4b8515ce620fb485fdd78fcdf89 refs/tags/v8.0
...
Et voici comment trouver les balises distantes:
git ls-remote --tags Origin
Essayez de faire git tag
cela devrait suffire sinon essayez de faire git fetch
puis git tag
.
Pour voir les détails de la dernière balise disponible que j'utilise parfois:
git show `git describe` --pretty=fuller
Lister les tags disponibles dans Git est simple. Il suffit de taper git tag
(avec -l
ou --list
en option).
$ git tag
v5.5
v6.5
Vous pouvez également rechercher des étiquettes correspondant à un modèle particulier.
$ git tag -l "v1.8.5*"
v1.8.5
v1.8.5-rc0
v1.8.5-rc1
v1.8.5-rc2
Récupération de la dernière balise sur le référentiel git
La commande trouve la dernière balise accessible à partir d'un commit. Si la balise pointe sur la validation, seule la balise est affichée. Sinon, le nom de la balise est suffixé du nombre de validations supplémentaires ajoutées à l'objet marqué et du nom abrégé de la validation la plus récente.
git describe
Avec --abbrev
défini sur 0
, la commande peut être utilisée pour rechercher le tagname
le plus proche sans suffixe:
git describe --abbrev=0
Autres exemples:
git describe --abbrev=0 --tags # gets tag from current branch
git describe --tags `git rev-list --tags --max-count=1` // gets tags across all branches, not just the current branch
Comment élaguer les balises git locales qui n'existent pas à distance
En termes simples, si vous essayez de faire quelque chose comme git fetch -p -t
, cela ne fonctionnera pas à partir de la version git 1.9.4
.
Cependant, il existe une solution de contournement simple qui fonctionne toujours dans les dernières versions:
git tag -l | xargs git tag -d // remove all local tags
git fetch -t // fetch remote tags
Si vous voulez vérifier votre nom de balise localement, vous devez vous rendre au chemin où vous avez créé la balise (chemin local). Cela signifie où vous avez mis vos objets. Puis tapez la commande:
git show --name-only <tagname>
Il montrera tous les objets sous le nom de cette balise. Je travaille dans Teradata et objet signifie vue, table, etc.
Vous pouvez répertorier toutes les balises existantes git tag
ou filtrer la liste avec git tag -l 'v1.1.*'
, où *
agit comme un caractère générique. Il renverra une liste de balises marquées avec v1.1
.
Vous remarquerez que lorsque vous appelez git tag
, vous ne pouvez pas voir le contenu de vos annotations. Pour les prévisualiser, vous devez ajouter -n
à votre commande: git tag -n2
.
balise $ git -l -n2 v1.0 Version 1.0 v1.1 Version 1.1
La commande répertorie toutes les balises existantes avec au maximum 3 lignes de leur message. Par défaut, -n
n'affiche que la première ligne. Pour plus d’informations, assurez-vous de vérifier cet article associé à la balise également.