Recherche de site Web

Comment vérifier une branche Git distante


Résumé : Pour extraire une branche d'un référentiel distant, utilisez la commande git fetch, puis git branch -r pour répertorier les branches distantes. Choisissez la branche dont vous avez besoin et utilisez une commande de la forme git checkout -b new-branch-name origin/remote-branch-name. Si vous utilisez plusieurs référentiels, remplacez la partie origine de la commande d'extraction par le nom de la télécommande à partir de laquelle vous souhaitez extraire la branche.

Si votre équipe de développement utilise Git, vous devrez éventuellement vérifier le travail de quelqu'un d'autre en tant que branche à partir d'un référentiel distant. Comme la plupart des actions de branche dans Git, le passage à une branche distante est en fait assez simple.

Git, branches et télécommandes

La philosophie de Git est de se brancher souvent. Les branches permettent au développement d'avoir lieu sans altérer la base de code principale. Lorsque vous êtes satisfait que votre nouveau code testé est prêt, vous fusionnez votre nouvelle branche dans une autre branche. Il s'agit généralement de la branche principale ou principale, mais vous pouvez fusionner deux branches.

En raison de cette flexibilité et de la manière légère et rapide dont Git gère les branches et les fusions, la création de branches a été transformée. Dans les anciens systèmes de contrôle de version, la création de branches était un gros problème. La création de branches et la fusion étaient lentes et sujettes aux erreurs. Git a donné aux développeurs une arborescence simple et rapide qui est utilisée pour sous-tendre de nombreux flux de travail différents.

Si vous travaillez ou faites du bénévolat au sein d'une équipe de développement utilisant Git, vous disposerez d'un référentiel Git central, distant de l'ordinateur de chaque ingénieur logiciel. C'est ce qu'on appelle le référentiel distant, ou simplement le distant. C'est là que les validations et les modifications apportées à votre référentiel local sont envoyées lorsque vous effectuez un push.

Bien sûr, c'est ce que font aussi les autres développeurs. Cela facilite la collaboration. Si vous avez besoin d'accéder au travail d'un autre développeur, il vous suffit de récupérer son code à partir d'une branche du référentiel distant. S'ils ont besoin d'accéder à votre travail, ils récupéreront votre code à partir d'une branche du référentiel qui suit l'une de vos branches locales.

Dans Git, un projet de développement peut avoir plusieurs télécommandes. Cependant, une branche locale ne peut suivre qu'une seule branche distante. Ainsi, tant que vous travaillez avec la télécommande appropriée, l'extraction d'une branche distante avec plusieurs télécommandes revient au même que l'utilisation d'une seule télécommande.

Trouver vos succursales locales

Vous devez éviter les conflits de noms. Si vous avez une branche locale qui porte le même nom que la branche distante que vous allez vérifier, vous avez deux options. Vous pouvez renommer votre branche locale et consulter la branche distante. De cette façon, votre branche locale qui suit la branche distante porte le même nom que la branche distante. Ou, vous pouvez vérifier la branche distante et dire à Git de créer une branche de suivi locale avec un nouveau nom.

Pour connaître les noms des branches de votre dépôt local, utilisez la commande git branch.

git branch

Ce référentiel local a une branche principale et trois autres branches. L'astérisque indique quelle est la branche actuelle. Passer d'une branche à l'autre nécessite de vérifier la branche avec laquelle vous souhaitez travailler.

git checkout new-feature
git status

La première commande change la branche pour nous, de sorte que new-feature est la branche actuelle. La commande git status vérifie cela pour nous.

Nous pouvons faire des allers-retours entre les branches, valider de nouvelles modifications, extraire des mises à jour de la télécommande et envoyer des mises à jour locales à la télécommande.

Vérification d'une succursale distante

Il y a une branche sur le référentiel distant qui n'est pas présente sur notre machine. Un développeur appelé Mary a créé une nouvelle fonctionnalité. Nous voulons passer à cette branche distante afin de pouvoir créer cette version du logiciel localement.

Si nous effectuons une fetch, Git récupérera les métadonnées du référentiel distant.

git fetch

Comme il s'agit de la première fetch que nous avons effectuée depuis que Mary a poussé sa branche vers le référentiel distant, on nous dit qu'il existe une nouvelle branche appelée origin/mary-feature. Le nom par défaut du premier dépôt distant ajouté à un projet est « origin ».

Que nous voyions ce message ou non, nous pouvons toujours demander à Git de lister les branches du référentiel distant.

L'option -r (distant) indique à Git de signaler les branches qui se trouvent sur le référentiel distant.

git branch -r

Le point à noter ici est que Git vérifie sa copie locale des métadonnées de la télécommande. C'est pourquoi nous avons utilisé la commande git fetch pour nous assurer que la copie locale des métadonnées est à jour.

Une fois que nous avons repéré la branche que nous voulons, nous pouvons aller de l'avant et la vérifier. Nous utilisons la commande git checkout avec l'option -b (branche), suivi du nom que nous utiliserons pour la branche locale, suivi du nom de la branche distante .

git checkout -b mary-feature origin/mary-feature

Nous pouvons voir que nous avons vérifié la branche distante et créé une branche locale qui suivra les modifications dans la branche distante.

git branch

Notre nouvelle succursale locale est maintenant notre succursale de travail actuelle.

Gestion des conflits de noms

Si vous avez une branche locale qui porte le même nom que la branche distante, vous pouvez soit renommer votre branche locale avant d'extraire la branche distante, soit extraire la branche distante et spécifier un autre nom de branche locale.

Pour extraire la branche distante dans une branche locale nommée différemment, nous pouvons utiliser la même commande que nous avons utilisée précédemment et choisir un nouveau nom de branche locale.

git checkout -b mary-test origin/mary-feature

Cela crée une branche locale appelée mary-test qui suivra les commits locaux vers cette branche. Les pushs iront à la branche distante « origin/mary-feature ».

C'est probablement la meilleure façon de gérer les conflits de noms locaux. Si vous voulez vraiment garder le même nom de branche locale et distante, vous devrez renommer votre branche locale avant de vérifier la télécommande. Renommer une branche est trivial dans Git.

git branch -m mary-feature old-mary-branch

Vous pouvez maintenant vérifier la branche distante « origin/mary-feature ».

Gestion de plusieurs référentiels distants

Si plusieurs référentiels distants sont configurés, vous devez vous assurer que vous travaillez avec le référentiel approprié lorsque vous extrayez la branche distante.

Pour répertorier vos référentiels distants, utilisez la commande remote avec l'option -v (afficher).

git remote -v

Pour voir toutes les branches disponibles, nous devons récupérer les métadonnées de toutes nos télécommandes, puis répertorier les branches distantes.

git fetch --all
git branch --all

Nous pouvons voir que la branche que nous voulons est dans la télécommande origine. La commande pour le vérifier est dans le même format que nous avons déjà utilisé. Nous devons spécifier le nom distant, origin, ainsi que le nom de la branche, mary-feature.

git checkout -b mary-feature origin/mary-feature

Avant de passer à la caisse

Avant de passer à la caisse, gardez quelques points à l'esprit et tout ira bien.

Assurez-vous d'éviter les conflits de noms. Si vous avez une branche locale portant le même nom que la branche distante, décidez si vous allez renommer la branche locale ou créer une branche avec un nom différent pour suivre la branche distante.

Si vous utilisez plusieurs référentiels distants, assurez-vous d'utiliser la bonne télécommande.