Comment vérifier si une branche Git a été supprimée 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 a été supprimée sur un dépôt distant. Nous aborderons les étapes essentielles pour mettre à jour la vue de votre dépôt local du dépôt distant, lister les branches distantes disponibles et vérifier leur existence à l'aide de différentes commandes Git.

Vous commencerez par utiliser git fetch --prune pour synchroniser votre dépôt local avec le dépôt distant et supprimer les branches de suivi distantes obsolètes. Ensuite, vous utiliserez git branch -r pour lister les branches de suivi distantes qui sont maintenant reflétées dans votre dépôt local. Enfin, vous apprendrez à utiliser git ls-remote pour interroger directement le dépôt distant pour une branche spécifique, offrant une méthode alternative de vérification.


Skills Graph

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

Exécuter git fetch --prune pour mettre à jour

Dans cette étape, nous allons apprendre à mettre à jour notre dépôt Git local avec les dernières modifications d'un dépôt distant. Imaginez que vous travaillez sur un projet avec d'autres personnes, et qu'elles ont apporté des modifications et les ont poussées (push) sur un serveur central. Vous avez besoin d'un moyen d'obtenir ces modifications dans votre copie locale.

La commande que nous utilisons pour cela est git fetch. Cette commande télécharge les commits, les fichiers et les références (refs) d'un dépôt distant dans votre dépôt local. C'est comme obtenir les dernières mises à jour du serveur sans les fusionner (merge) dans votre travail actuel.

Nous allons également utiliser l'option --prune. Cette option supprime les branches de suivi distantes qui n'existent plus sur le dépôt distant. Cela permet de maintenir votre liste de branches distantes propre et à jour.

Supposons que vous avez configuré un dépôt distant (nous verrons comment ajouter des dépôts distants dans un prochain laboratoire (lab)). Pour l'instant, nous allons simuler la récupération (fetch) depuis un dépôt distant.

Ouvrez votre terminal, assurez-vous d'être dans le répertoire ~/project/my-time-machine et exécutez la commande suivante :

cd ~/project/my-time-machine
git fetch --prune origin

Vous pourriez voir une sortie similaire à celle-ci (la sortie exacte dépend du dépôt distant) :

From origin
 * [new branch]      feature/new-feature -> origin/feature/new-feature
 - [deleted]         (none)              -> origin/old-branch

Cette sortie montre que Git a récupéré de nouvelles branches (feature/new-feature) et a supprimé les branches qui n'existent plus sur le dépôt distant (old-branch).

Exécuter git fetch --prune est une bonne pratique pour maintenir une vue précise de votre dépôt distant dans votre dépôt local. Cela vous permet de voir les modifications apportées par les autres avant de décider de les intégrer à votre propre travail.

Vérifier les branches distantes avec git branch -r

Dans l'étape précédente, nous avons utilisé git fetch --prune pour mettre à jour notre dépôt local avec les informations du dépôt distant. Maintenant, voyons quelles branches distantes sont disponibles dans notre dépôt local après la récupération (fetch).

Nous pouvons lister les branches de suivi distantes en utilisant la commande git branch avec l'option -r. Cette commande affiche les branches que Git a récupérées depuis les dépôts distants.

Assurez-vous de toujours être dans le répertoire ~/project/my-time-machine et exécutez la commande suivante :

cd ~/project/my-time-machine
git branch -r

Vous devriez voir une liste de branches distantes, généralement préfixées par le nom du dépôt distant (comme origin) suivi du nom de la branche. Par exemple :

  origin/master
  origin/feature/new-feature

Cette sortie vous indique les branches qui existent sur le dépôt distant (origin dans ce cas) et dont votre Git local dispose d'informations. Ce ne sont pas des branches locales sur lesquelles vous pouvez travailler directement ; ce sont des références à l'état des branches sur le dépôt distant.

Comprendre les branches de suivi distantes est important car elles représentent l'état du dépôt distant au moment du dernier git fetch ou git pull. Elles vous permettent de voir ce qui se passe sur le dépôt distant sans affecter vos branches de travail locales.

Vérifier avec git ls-remote

Dans l'étape précédente, nous avons utilisé git branch -r pour voir les branches de suivi distantes dans notre dépôt local. Une autre commande utile pour voir les références (refs) dans un dépôt distant est git ls-remote.

Contrairement à git fetch qui télécharge les objets, git ls-remote simplement liste les références (comme les branches et les tags) dans un dépôt distant sans les récupérer. Cela est utile pour vérifier rapidement ce qui est disponible sur le dépôt distant sans mettre à jour votre copie locale.

Assurez-vous d'être dans le répertoire ~/project/my-time-machine et exécutez la commande suivante, en spécifiant le nom du dépôt distant (qui est généralement origin) :

cd ~/project/my-time-machine
git ls-remote origin

Vous devriez voir une sortie similaire à celle-ci :

a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9 HEAD
a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9 refs/heads/master
f0e1d2c3b4a59687765443210fedcba987654321 refs/heads/feature/new-feature

Cette sortie montre le hachage du commit (commit hash) suivi du nom de la référence. HEAD pointe généralement vers la branche par défaut sur le dépôt distant (souvent master ou main). refs/heads/ indique une branche, et refs/tags/ indiquerait un tag.

Comparer la sortie de git branch -r et git ls-remote peut vous aider à comprendre la différence entre ce qui se trouve réellement sur le dépôt distant (git ls-remote) et ce que votre dépôt local sait du dépôt distant après la dernière récupération (git branch -r).

Cette commande est un moyen rapide d'apercevoir la structure du dépôt distant sans effectuer une opération de récupération complète.

Résumé

Dans ce laboratoire (lab), nous avons appris à vérifier si une branche Git a été supprimée sur un dépôt distant. La première étape cruciale consiste à mettre à jour la vue de notre dépôt local du dépôt distant en utilisant git fetch --prune. Cette commande télécharge les dernières informations depuis le dépôt distant et, ce qui est important, supprime toutes les branches de suivi distantes locales qui n'existent plus sur le dépôt distant, garantissant ainsi que notre vue locale est précise.

Après avoir effectué la récupération (fetch) et l'élagage (prune), nous pouvons ensuite utiliser des commandes telles que git branch -r pour lister les branches de suivi distantes qui sont toujours présentes dans notre dépôt local. En comparant la sortie avant et après la récupération, ou simplement en observant les branches élaguées lors de la récupération, nous pouvons déterminer si une branche spécifique a été supprimée sur le dépôt distant.