Tirer la branche distante dans le dépôt local avec un nom différent?

112

D'accord, j'ai fait un peu de recherche à ce sujet mais je n'ai pas trouvé de réponse exacte, alors je dois demander.

J'ai 2 télécommandes: origine et repo2.

J'aimerais faire quelque chose comme

git pull repo2 master

Mais cela attirerait la branche principale du repo2 dans mon maître. Puis-je spécifier une autre branche à extraire, pour ma branche locale?

Cosmin Atanasiu
la source

Réponses:

163
git checkout -b myBranchName repo2/master
KingCrunch
la source
20
Remarque - vous devez avoir exécuté git fetch remote2au préalable, si ce n'est pas encore fait. Sinon, vous pouvez voir> fatal: impossible de mettre à jour les chemins et de basculer vers la branche «myBranchName» en même temps.
dman
Remarque - si vous avez besoin de repousser, utilisez git push repo2 myBranchName:mastercomme un simple git pushéchouera
jaimedash
2
Et si la branche existe déjà? Je veux mettre à jour le code avec le code du repo.
Jared
@Jared Techniquement une question différente, mais aussi facilement possible (et c'est en fait l'un des cas d'utilisation les plus courants). Cela dépend légèrement de ce que vous avez déjà fait. Dans la plupart des cas, c'est juste git checkout my_branch && git pull --rebase( --rebasedépend de votre flux de travail). Si la branche ne suit pas déjà la branche distante, vous devez l'exécuter git branch --set-upstream my_branch upstream/my_branchune fois.
KingCrunch
4

La git pullcommande est une fonction pratique qui fait git fetchet git merge. Si vous souhaitez uniquement récupérer les branches d'une nouvelle télécommande sans essayer de la fusionner dans une branche de copie de travail, vous pouvez simplement utiliser git fetch. Vous pouvez ensuite vous référer à git branch -avpour voir toutes les succursales locales et distantes et opérer sur l'une ou l'autre à distance comme vous le souhaitez.

Ben Jackson
la source