Dans les étapes précédentes, nous avons appris à lister et à récupérer les étiquettes depuis un dépôt distant. Cependant, tous les dépôts distants n'ont pas d'étiquettes. Dans cette étape, nous allons tester git ls-remote --tags
sur un dépôt qui n'a probablement aucune étiquette.
Nous allons utiliser un simple dépôt Git nouvellement initialisé hébergé sur un chemin local. Cela simule un dépôt distant pour lequel aucune étiquette n'a été créée.
Tout d'abord, créons un nouveau répertoire et initialisons un dépôt Git à l'intérieur. Nous allons le faire en dehors de notre répertoire actuel my-tag-project
pour simuler un dépôt distant distinct.
cd ~/project
mkdir remote-repo
cd remote-repo
git init --bare
La commande git init --bare
crée un dépôt Git nu (bare repository). Un dépôt nu n'a pas de répertoire de travail ; il est généralement utilisé comme dépôt central vers lequel les développeurs poussent (push) et depuis lequel ils tirent (pull) des modifications.
Maintenant, revenons dans notre répertoire my-tag-project
:
cd ~/project/my-tag-project
À partir d'ici, nous pouvons utiliser git ls-remote --tags
pour vérifier s'il y a des étiquettes dans notre nouveau "dépôt distant" que nous venons de créer. Nous allons utiliser le chemin local vers le dépôt nu comme URL distante :
git ls-remote --tags ~/project/remote-repo
Étant donné que nous venons d'initialiser ce dépôt et n'avons ajouté aucun commit ni étiquette, cette commande ne devrait produire aucun résultat. Cela indique qu'il n'y a pas d'étiquettes dans le dépôt distant spécifié.
Cela démontre que git ls-remote --tags
affichera correctement rien lorsqu'un dépôt distant ne contient aucune étiquette. Cela est utile pour confirmer l'absence d'étiquettes ou pour des scripts où vous devez gérer des dépôts avec ou sans étiquettes.
Vous avez maintenant pratiqué la liste des étiquettes à la fois depuis un dépôt avec de nombreuses étiquettes et depuis un dépôt sans étiquettes. Cela vous donne une meilleure compréhension du comportement de git ls-remote --tags
dans différents scénarios.