201 votes

Comment télécharger une branche avec git?

J'ai un projet hébergé sur GitHub. J'ai créé une branche sur un ordinateur, puis j'ai poussé mes changements vers GitHub avec :

git push origin nom-de-la-branche

Maintenant je suis sur un autre ordinateur, et je veux télécharger cette branche. Donc j'ai essayé :

git pull origin nom-de-la-branche

...mais tout ce que cela a fait a été d'écraser ma branche principale avec les changements de ma nouvelle branche.

Que dois-je faire pour tirer correctement ma branche distante, sans écraser les branches existantes ?

356voto

Andrew Points 30079

Merci à une question liée, j'ai découvert que je dois "checkout" la branche distante comme une nouvelle branche locale, et spécifier un nouveau nom de branche locale.

git checkout -b newlocalbranchname origin/branch-name

Ou vous pouvez faire:

git checkout -t origin/branch-name

Ce dernier va créer une branche qui suit également la branche distante.


Mise à jour: Cela fait 5 ans depuis que j'ai posté cette question initialement. J'ai beaucoup appris et git s'est amélioré depuis lors. Mon flux de travail habituel est un peu différent maintenant.

Si je veux récupérer les branches distantes, je lance simplement:

git pull

Cela va récupérer toutes les branches distantes et fusionner la branche actuelle. Cela affichera une sortie qui ressemble à ceci:

From github.com:andrewhavens/example-project
   dbd07ad..4316d29  master     -> origin/master
 * [new branch]      production -> origin/production
 * [new branch]      my-bugfix-branch -> origin/my-bugfix-branch
First, rewinding head to replay your work on top of it...
Fast-forwarded master to 4316d296c55ac2e13992a22161fc327944bcf5b8.

Maintenant git connaît ma nouvelle my-bugfix-branch. Pour passer à cette branche, je peux simplement exécuter:

git checkout my-bugfix-branch

Normalement, j'aurais besoin de créer la branche avant de pouvoir la vérifier, mais dans les nouvelles versions de git, il est assez intelligent pour savoir que vous voulez checkout une copie locale de cette branche distante.

63voto

Dan J Points 7314

Pour tous les nouveaux utilisateurs de Git comme moi, voici quelques étapes que vous pourriez suivre pour télécharger un dépôt distant, puis passer à la branche que vous souhaitez afficher. Ils abusent probablement de Git d'une manière ou d'une autre, mais cela a fait l'affaire pour moi! :-)

Clonez le dépôt pour télécharger le code (dans cet exemple j'ai choisi le projet LRResty sur Github):

$ git clone https://github.com/lukeredpath/LRResty.git
$ cd LRResty

Vérifiez quelle branche vous utilisez à ce moment-là (elle devrait être la branche principale):

$ git branch    
* master

Allez sur la branche que vous souhaitez, dans mon cas elle s'appelle 'arcified':

 $ git checkout -b arcified origin/arcified
 La branche arcified est mise en place pour suivre la branche distante arcified depuis l'origine.
 Passer à une nouvelle branche 'arcified'

Confirmez que vous utilisez maintenant la branche souhaitée:

$ git branch    
* arcified
  master

Si vous souhaitez mettre à jour le code plus tard, exécutez git pull:

$ git pull
Déjà à jour.

43voto

Old Markus Points 685

Vous pouvez utiliser :

git clone --branch

pour cloner/télécharger uniquement le contenu de la branche.

Cela m'a été très utile, surtout que le contenu de ma branche était complètement différent de la branche principale (bien que ce ne soit pas habituellement le cas). Par conséquent, les suggestions mentionnées par d'autres ci-dessus ne m'ont pas aidé et je me retrouvais avec une copie de la branche principale même après avoir fait un checkout de la branche et un git pull.

Cette commande vous donnera directement le contenu de la branche. Cela a fonctionné pour moi.

23voto

ardsrk Points 1393

Vous pourriez utiliser git remote comme suit :

git fetch origin

puis configurer une branche locale pour suivre la branche distante comme ci-dessous :

git branch --track [nom-de-la-branche-locale] origin/nom-de-la-branche-distante

Vous auriez maintenant le contenu de la branche distante github dans nom-de-la-branche-locale.

Vous pourriez passer à cette branche locale et commencer le travail :

git checkout [nom-de-la-branche-locale]

18voto

Srikanta Sahoo Points 227

Naviguez vers le dossier sur votre nouvelle machine à partir duquel vous souhaitez télécharger depuis Git sur Git Bash.

Utilisez la commande ci-dessous pour télécharger le code à partir de n'importe quelle branche que vous souhaitez

git clone 'URL ssh git' -b 'Nom de la branche'

Cela téléchargera le code de la branche respective.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X