Comment vérifier si une branche Git existe sur un dépôt distant

GitGitBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire (lab), vous apprendrez à vérifier si une branche Git spécifique existe sur un dépôt distant. Nous allons explorer deux méthodes principales pour y parvenir.

Tout d'abord, vous utiliserez la commande git ls-remote pour inspecter les références, y compris les branches, sur un dépôt distant en fournissant son URL. Cela vous permet de voir ce qui est disponible sur le dépôt distant sans avoir besoin de le cloner. Ensuite, vous apprendrez à utiliser la commande git branch -r pour lister les branches distantes suivies par votre dépôt local. Enfin, vous appliquerez ces techniques pour vérifier l'existence d'une branche spécifique sur un dépôt distant.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL git(("Git")) -.-> git/BranchManagementGroup(["Branch Management"]) git(("Git")) -.-> git/CollaborationandSharingGroup(["Collaboration and Sharing"]) git/BranchManagementGroup -.-> git/branch("Handle Branches") git/CollaborationandSharingGroup -.-> git/fetch("Download Updates") git/CollaborationandSharingGroup -.-> git/remote("Manage Remotes") subgraph Lab Skills git/branch -.-> lab-560036{{"Comment vérifier si une branche Git existe sur un dépôt distant"}} git/fetch -.-> lab-560036{{"Comment vérifier si une branche Git existe sur un dépôt distant"}} git/remote -.-> lab-560036{{"Comment vérifier si une branche Git existe sur un dépôt distant"}} end

Exécuter git ls-remote pour vérifier le dépôt distant

Dans cette étape, nous apprendrons à vérifier les dépôts distants associés à votre dépôt Git local. Un dépôt distant est essentiellement une version de votre projet hébergée sur Internet ou sur un réseau, comme sur des plateformes telles que GitHub, GitLab ou Bitbucket. Cela vous permet de collaborer avec d'autres personnes et de sauvegarder votre travail.

Pour voir les dépôts distants configurés pour votre projet actuel, vous pouvez utiliser la commande git remote. Cependant, pour obtenir des informations plus détaillées sur le dépôt distant, y compris les références (comme les branches et les étiquettes) disponibles sur le dépôt distant, nous utilisons la commande git ls-remote.

Tout d'abord, assurons-nous que nous sommes dans le répertoire de notre projet. Ouvrez votre terminal et accédez au répertoire my-time-machine :

cd ~/project/my-time-machine

Maintenant, utilisons git ls-remote pour vérifier un dépôt distant. Pour cet exemple, nous utiliserons un dépôt Git public. Tapez la commande suivante :

git ls-remote https://github.com/labex-io/example-repo.git

Vous devriez voir une sortie similaire à ceci :

a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9 HEAD
a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9 refs/heads/main
... (autres références)

Cette commande contacte le dépôt distant à l'URL donnée et liste toutes les références (comme les branches et les étiquettes) disponibles là-bas, ainsi que leurs hachages de commit correspondants. La référence HEAD pointe généralement vers la branche par défaut (souvent main ou master).

Comprendre git ls-remote est utile lorsque vous souhaitez inspecter un dépôt distant sans le cloner entièrement. Il vous donne un aperçu rapide des branches et des étiquettes disponibles sur le dépôt distant.

Utiliser git branch -r pour lister les branches distantes

Dans l'étape précédente, nous avons utilisé git ls-remote pour voir les références sur un dépôt distant en fournissant son URL. Une autre façon courante de visualiser les branches distantes, en particulier pour les dépôts distants que vous avez déjà ajoutés à votre dépôt local, consiste à utiliser la commande git branch avec le drapeau -r.

La commande git branch est principalement utilisée pour lister, créer ou supprimer des branches locales. L'ajout du drapeau -r indique à Git de lister les branches de suivi distant (remote-tracking branches). Les branches de suivi distant sont des références dans votre dépôt local qui suivent l'état des branches sur un dépôt distant. Elles sont automatiquement mises à jour lorsque vous effectuez des opérations Git telles que fetch ou pull.

Étant donné que notre dépôt actuel my-time-machine n'a pas encore de dépôts distants ajoutés, ajoutons d'abord un dépôt distant afin que nous puissions utiliser git branch -r. Nous allons ajouter le même dépôt d'exemple que nous avons utilisé dans l'étape précédente en tant que dépôt distant nommé origin.

Assurez-vous que vous êtes toujours dans le répertoire ~/project/my-time-machine :

cd ~/project/my-time-machine

Maintenant, ajoutez le dépôt distant :

git remote add origin https://github.com/labex-io/example-repo.git

Cette commande ajoute un nouveau dépôt distant nommé origin pointant vers l'URL spécifiée. origin est un nom conventionnel pour le dépôt distant principal.

Maintenant que nous avons configuré un dépôt distant, nous pouvons utiliser git branch -r pour lister les branches distantes. Cependant, avant que git branch -r puisse vous montrer les branches distantes, votre dépôt local doit en avoir connaissance. Ces informations sont mises à jour lorsque vous effectuez une récupération (fetch) depuis le dépôt distant. Récupérons les dernières informations depuis le dépôt distant origin :

git fetch origin

Vous devriez voir une sortie indiquant que Git est en train de récupérer des objets depuis le dépôt distant.

Maintenant, listons les branches distantes en utilisant git branch -r :

git branch -r

Vous devriez voir une sortie similaire à ceci :

  origin/HEAD -> origin/main
  origin/main

Cette sortie montre les branches de suivi distant. origin/main représente la branche main sur le dépôt distant origin. L'entrée origin/HEAD indique vers quelle branche HEAD pointe sur le dépôt distant, qui est généralement la branche par défaut.

L'utilisation de git branch -r est un moyen rapide de voir quelles branches existent sur vos dépôts distants configurés sans avoir besoin de vous connecter au dépôt distant à chaque fois, car les informations sont stockées localement après une opération de fetch ou de pull.

Vérifier l'existence d'une branche distante spécifique

Dans l'étape précédente, nous avons listé toutes les branches de suivi distant en utilisant git branch -r. Parfois, vous pourriez vouloir vérifier spécifiquement si une branche particulière existe sur un dépôt distant. Vous pouvez le faire en combinant git ls-remote avec grep ou en examinant la sortie de git branch -r.

Utilisons à nouveau git ls-remote, mais cette fois-ci, nous allons filtrer la sortie pour voir si la branche main existe sur le dépôt distant origin.

Assurez-vous que vous êtes dans le répertoire ~/project/my-time-machine :

cd ~/project/my-time-machine

Maintenant, exécutez la commande suivante :

git ls-remote origin main

Vous devriez voir une sortie similaire à ceci :

a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9 refs/heads/main

Cette commande demande spécifiquement au dépôt distant origin des informations sur la référence main (qui correspond à la branche main). Si la branche existe, elle affichera le hachage du commit vers lequel elle pointe et le nom complet de la référence (refs/heads/main). Si la branche n'existait pas, il n'y aurait pas de sortie.

Alternativement, vous pourriez obtenir un résultat similaire en vérifiant la sortie de git branch -r. Étant donné que nous avons déjà exécuté git fetch origin dans l'étape précédente, notre dépôt local possède des informations sur les branches distantes.

Vous pouvez utiliser git branch -r et rediriger sa sortie vers grep pour rechercher une branche spécifique. Par exemple, pour vérifier l'existence de origin/main :

git branch -r | grep origin/main

Si la branche de suivi distant origin/main existe, cette commande affichera :

  origin/main

Si elle n'existait pas, grep ne trouverait rien et il n'y aurait pas de sortie.

À la fois git ls-remote <remote> <branch> et git branch -r | grep <remote>/<branch> sont des moyens utiles de vérifier l'existence d'une branche spécifique sur un dépôt distant. git ls-remote interroge directement le dépôt distant, tandis que git branch -r utilise les informations mises en cache localement depuis la dernière récupération (fetch).

Résumé

Dans ce laboratoire, nous avons appris à vérifier si une branche Git existe sur un dépôt distant. Nous avons exploré deux méthodes principales pour cela.

Tout d'abord, nous avons utilisé la commande git ls-remote, qui nous permet d'inspecter les références (y compris les branches) sur un dépôt distant en fournissant son URL, sans avoir besoin de le cloner. Cela fournit une liste détaillée des références disponibles et de leurs hachages de commit. Ensuite, nous avons appris à utiliser la commande git branch -r pour lister les branches distantes des dépôts distants déjà configurés dans notre dépôt local. Enfin, nous avons pratiqué la vérification de l'existence d'une branche distante spécifique en utilisant ces méthodes.