Effectuer facilement un checkout de branche distante Git [Étape par étape]

Êtes-vous un nouveau venu dans une équipe et avez-vous reçu l’instruction de vérifier une branche distante à partir du référentiel de code Git ? Que vous fassiez partie d’une grande entreprise ou d’une petite équipe, maîtriser les branches distantes Git est essentiel pour une collaboration fluide sur le code. Dans ce guide, plongez dans le processus de récupération du code à partir d’un référentiel Git distant, en mettant l’accent sur la commande « git checkout remote branch ».

Not a reader? Explore this related video tutorial!

Not seeing the video? Ensure your ad blocker is disabled.

Prérequis

  • Ce tutoriel utilise la version 2.30 de Git SCM (gestion de code source) sous Windows 10, bien qu’il soit compatible avec tout système d’exploitation pris en charge par Git.

D’autres méthodes d’installation possibles pour Windows incluent Chocolatey et Git4Win.

Comprendre une branche distante

Les référentiels Git retracent et suivent une séquence de validations liées au sein d’une branche. Par défaut, une validation réside dans la branche actuellement active, généralement appelée « main » ou « master ».

A remote branch is a branch located in a remote Git repository. These remote repositories, termed as “remotes,” are the destinations your local Git repository will scout for external commit updates once set up.

Découvrez les branches disponibles en utilisant la commande Git branch. La branche marquée d’un astérisque (*) est celle active. Les branches répertoriées ci-dessous sont uniquement locales, car aucune branche distante n’a encore été récupérée.

git branch
List of local branches shown from the git branch command.

Maîtriser Git Checkout Remote Branch

Supposons que vous ayez un référentiel Git local et que le besoin de collaborer avec d’autres développeurs se fasse sentir. C’est là que la commande Git checkout entre en jeu, vous permettant de récupérer les derniers commits d’une branche distante sur un référentiel Git distant.

Une fois qu’une branche distante est configurée, Git reflétera la branche distante plutôt qu’une branche locale uniquement. Voici un exemple de la commande git checkout remote <branche>.

git checkout remote main

Cloner le référentiel Git distant

Maintenant qu’un référentiel existant est à votre disposition, il est temps de plonger. Suivez les étapes ci-dessous pour cloner le référentiel distant dans un dossier local sur votre machine.

1. Il est souvent plus simple de cloner un référentiel distant via l’URL HTTPS plutôt que par SSH pour contourner les problèmes de certificat et de pare-feu.

  • Rendez-vous sur le référentiel sur GitHub.
  • Cliquez sur le bouton Code et sélectionnez HTTPS.
  • Cliquez sur l’icône Clipboard à côté du lien pour copier l’URL dans votre presse-papiers.
Locating the HTTPS clone URL in GitHub.

2. Ayant copié l’URL HTTPS dans votre presse-papiers, ouvrez une interface de ligne de commande en utilisant votre CLI préféré, tel que l’invite de commande Windows ou le Terminal Windows.

3. Naviguez vers le dossier où vous souhaitez que le dépôt cloné réside. Pour ce tutoriel, le dossier git dans le répertoire personnel est utilisé comme illustré dans les captures d’écran. Exécutez la commande suivante pour cloner le dépôt, ce qui crée un sous-dossier hébergeant le dépôt distant.

# GitHub git clone https://github.com/Adam-the-Automator/git-checkout-remote-branch
Cloning a remote repository to the local machine.

4. Traversez jusqu’au dépôt cloné avec la commande, cd git-checkout-remote-branch.

Exécutez la commande status suivante pour vous assurer que le dépôt a été cloné avec succès. La commande status de Git révèle les différences entre la branche locale et la branche distante, aidant à déterminer si votre branche est connectée et à jour ! Le remote Git par défaut est nommé origin, préfixé à la branche remote main. git status

git status
Checking a repositories status.

Pour la plupart des logiciels Git modernes, main est la branche principale par défaut. Vous pouvez rencontrer une ancienne application qui utilise master comme nom de branche par défaut, mais les deux noms sont fonctionnellement les mêmes. Ce tutoriel utilise des branches nommées main, RemoteBranch, SomeBranch, et AnotherBranch.

Qu’est-ce qu’une branche Git distante et comment suivre les branches distantes

Cloner un dépôt crée automatiquement une référence vers une source distante, appelée une branche distante. Cette référence est utilisée pour vérifier les nouveaux commits ou pousser de nouveaux changements vers le dépôt distant.

A Git repository itself may have multiple remotes, but a branch can only reference a single remote.

Le suivi d’une branche distante établit une relation avec une branche locale. Cette relation vous permet de pousser ou tirer des commits de la branche distante vers la branche locale sans effort. De plus, une branche suivie détermine dans quelle mesure la branche locale est en avance ou en retard par rapport à la branche distante en termes de commits.

Liste des remotes d’un dépôt Git

Tout d’abord, assurez-vous que le dépôt avec lequel vous travaillez a des remotes Git. Pour ce faire, affichez les remotes Git dans votre dépôt avec la commande git remote comme indiqué ci-dessous. Dans cet exemple, deux remotes sont affichés, origin et remote2.

git remote
Viewing a repositories two configured remotes.

Deux références de dépôts distants suivis supplémentaires sont nommées origin et remote2, vos remotes peuvent être différentes.

Pour obtenir plus de détails sur les télécommandes configurées, ajoutez l’option v pour afficher l’URI complète de la télécommande Git.

git remote -v
Viewing verbose details about repo remotes.

Vous vous demandez peut-être pourquoi les URI séparées pour fetch et push. Certains flux de travail Git vous permettent de vérifier les mises à jour d’un dépôt à une URI différente de celle où vous pouvez envoyer des modifications, cela s’appelle le flux de travail triangulaire.

Consultation des branches distantes disponibles

Affichez toutes les branches disponibles, à la fois locales et distantes, dans votre dépôt avec la commande branch. Pour afficher également les branches distantes, ajoutez l’option all, comme illustré ci-dessous.

git branch --all

Dans l’image ci-dessous, le dépôt distant origin utilisé dans ce tutoriel est montré comme prévu. Néanmoins, cette image omet toutes les branches du distant nommé Remote2.

Viewing all known branches in a repo (including remotes).

Si une branche sur votre distant n’apparaît pas dans la liste des branches, vous devez mettre à jour votre liste de branches distantes disponibles comme indiqué dans la section suivante.

Mise à jour des branches distantes disponibles

Parfois, un dépôt distant peut ajouter ou modifier des branches. Pour vous assurer que vous travaillez avec les branches les plus récentes, il est nécessaire d’exécuter la commande git fetch.

Le commandement fetch se connecte au référentiel distant, récupérant une liste de toutes les branches disponibles. Consultez les branches actuellement suivies après l’exécution de la commande git fetch pour voir que la branche distante est maintenant visible, comme illustré ci-dessous.

# Récupérer les branches distantes disponibles
git fetch

# Vérifier que toutes les branches sont maintenant disponibles dans le référentiel Git local
git branch --all

ci-dessous, la branche remotes/origin/RemoteBranch est maintenant visible dans la liste des branches distantes disponibles après l’exécution de la commande git fetch.

Using git fetch to update the list of available remote branches.

La commande fetch vérifie uniquement les mises à jour du distant actuellement suivi dans la branche actuelle. Pour demander à Git de vérifier les mises à jour de tous les distants du référentiel, indépendamment du statut de suivi, ajoutez le paramètre all.

git fetch --all

Pour récupérer les branches disponibles d’un distant spécifique, incluez le nom du distant dans la commande git fetch, comme Remote2 dans l’exemple ci-dessous, qui récupère la branche main.

# Liste des branches disponibles dans un référentiel Git local
git branch --all
# Récupérer les branches disponibles depuis remote2
git fetch Remote2
# Vérifier que la branche remote2, main, est maintenant disponible
git branch --all
Fetching main from remote2 with the git fetch command.

Chaque fois que vous vérifiez les mises à jour à distance avec git fetch, git pull, ou git push, Git compare les commits avec la branche distante. Les branches locales peuvent suivre n’importe quelle branche distante Git. De plus, plusieurs branches locales peuvent être configurées pour suivre la même branche distante.

Visualisation du suivi à distance de chaque branche

Pour voir la branche distante suivie aux côtés de la branche locale correspondante, utilisez le paramètre vv avec la commande git branch. Les résultats de la commande affichent une liste de dépôts distants et de branches dans le format [<distant>/<branche>] comme illustré ci-dessous.

git branch -vv
Listing remote tracking of all local branches.

Modification du suivi à distance d’une branche

Il peut être nécessaire de modifier votre branche locale pour suivre une autre branche distante. Pour définir votre branche actuelle sur une branche distante spécifique, utilisez le paramètre u, comme illustré ci-dessous.

git branch -u Remote2/main
Setting what remote to track for the current branch.

Vérification des branches distantes Git

Avec de nouvelles branches créées sur le dépôt Git distant, vous devrez peut-être effectuer une opération de vérification des branches distantes git checkout. La vérification d’une branche de dépôt distant est effectuée via la commande checkout.

Si les conditions suivantes sont satisfaites, Git déterminera automatiquement le bon dépôt distant, téléchargera une copie locale de la branche distante et définira la copie locale pour suivre la branche distante. Vérifiez que les conditions suivantes ne sont pas remplies en utilisant les résultats de la commande git branch --all.

  • A local branch with the same name does not already exist.
  • Il n’existe pas plusieurs dépôts distants utilisant le même nom de branche distante.

Pour effectuer l’opération de vérification de branche distante avec Git, utilisez la commande git checkout et tapez le nom de la branche distante comme indiqué ci-dessous.

git checkout RemoteBranch
Creating a local branch from a remote branch with git checkout.

Si votre dépôt local contient déjà une branche locale portant le même nom, ajoutez le paramètre b pour spécifier un nom de branche locale alternatif avant la branche distante à vérifier.

git checkout -b AnotherBranch origin/RemoteBranch
Creating a local copy of a remote branch with an alternate local branch name.

Si votre dépôt local possède plusieurs dépôts distants avec le même nom de branche, précisez quel dépôt distant et quelle branche suivre pour les commits locaux.

git checkout --track origin/RemoteBranch
Creating a local copy of a remote branch with tracking enabled.

Les versions futures de Git pourraient préférer l’utilisation de la commande git switch pour changer et créer des branches. La commande Git switch est uniquement destinée aux branches, tandis que la commande Git checkout a de nombreuses fonctionnalités. Irshad S. a écrit un bon guide sur les raisons si vous souhaitez en savoir plus.

Pousser une branche locale vers un dépôt distant

Lors de la création d’une branche locale sans une branche distante correspondante pour le suivi, vous pouvez propulser la branche vers la distante en utilisant la commande git push. La méthode la plus directe pour établir une nouvelle branche sur votre distante préférée est d’utiliser le paramètre u.

Le paramètre u, tel qu’utilisé précédemment, nécessite les arguments du nom du dépôt et de la branche source. En spécifiant uniquement HEAD comme nom de branche source, Git comprend d’utiliser le nom actuel de la branche locale comme nom sur la distante, dans ce cas, NewBranch.

# Passer à NewBranch
git checkout -b NewBranch
# Créer NewBranch sur la distante d'origine
git push -u origin HEAD
# Vérifier que les branches sur la distante existent maintenant
git branch -vv
Pushing a local branch to an upstream remote named origin with the same name as local.

HEAD est un raccourci signifiant simplement la branche actuelle. Vous pouvez pousser d’autres branches vers la distante et établir un suivi en utilisant leur nom au lieu de HEAD.

Parfois, le nom de la branche locale actuelle ne correspond pas au nom de la branche distante. Pour utiliser un nom différent, spécifiez le nom de la branche souhaitée après la source, séparé par deux-points, comme démontré ci-dessous.

# Créer la branche actuelle sur la distante en tant que AnotherBranch
git push -u origin HEAD:AnotherBranch
# Vérifier que la branche locale NewBranch existe maintenant en tant que AnotherBranch sur la distante d'origine
git branch -vv
Pushing a local branch to an upstream remote named origin with an alternate remote branch name.

Étapes suivantes et ressources Git supplémentaires

Ayant examiné les éléments essentiels de Git, la gestion des dépôts distants et l’exécution de la branche distante git checkout, vous êtes maintenant équipé d’une richesse de connaissances qui vous aidera à éviter les frustrations futures. Les étapes pour vérifier la branche distante dans Git et les meilleures pratiques partagées serviront de ressources inestimables pour l’avenir.

Si vous souhaitez approfondir d’autres aspects de la gestion d’un dépôt Git, les ressources suivantes sont vivement recommandées:

  • A primer on detached heads: Discover scenarios where a detached HEAD is beneficial or inadvertent, and how to handle it.
  • Git switch: Une commande dédiée au traitement des branches, contrairement à la multifonctionnalité Git checkout.

Source:
https://adamtheautomator.com/git-checkout-remote-branch/