Mettre à jour une branche locale avec les modifications d'une branche distante suivie


96

J'ai une branche locale nommée « my_local_branch», qui suit une branche distante origin/my_remote_branch.

Maintenant, la branche distante a été mise à jour, et je suis sur le ' my_local_branch' et je veux apporter ces modifications. Dois-je juste faire:

git pull origin my_remote_branch:my_local_branch

C'est la bonne route?

Réponses:


72

Vous avez défini l'amont de cette branche

(voir:

git branch -f --track my_local_branch origin / my_remote_branch
# OU (si my_local_branch est actuellement extrait):
$ git branch --set-upstream-to my_local_branch origin / my_remote_branch

( git branch -f --trackne fonctionnera pas si la branche est extraite: utilisez la deuxième commande à la git branch --set-upstream-to place, ou vous obtiendrez " fatal: Cannot force update the current branch.")

Cela signifie que votre succursale est déjà configurée avec:

branch.my_local_branch.remote origin
branch.my_local_branch.merge my_remote_branch

Git a déjà toutes les informations nécessaires.
Dans ce cas:

# if you weren't already on my_local_branch branch:
git checkout my_local_branch 
# then:
git pull

est assez.


Si vous n'aviez pas établi cette relation de branche en amont quand il s'agissait de pousser votre ' my_local_branch', alors un simple git push -u origin my_local_branch:my_remote_branchaurait suffi pour pousser et définir la branche en amont.
Après cela, pour les tractions / poussées suivantes, git pullou git pushaurait, encore une fois, suffi.


L'OP mentionne qu'ils suivent déjà la succursale distante.
Amber

7
@Amber d'où ma réponse: git pullc'est assez.
VonC

La première commande git branch -f --track master origin/masterrenvoie une erreur:fatal: Cannot force update the current branch.
Mark Kramer

@MarkKramer Oui, j'ai édité la réponse pour clarifier la deuxième commande à utiliser si la branche locale est actuellement extraite.
VonC

Vous devriez également le changer en --set-upstream-to, --set-upstreamest obsolète et va être supprimé.
Mark Kramer

88

Vous n'utilisez pas la :syntaxe - pullmodifie toujours la branche actuellement extraite. Donc:

git pull origin my_remote_branch

pendant que vous avez my_local_branchvérifié, fera ce que vous voulez.

Puisque vous avez déjà l'ensemble de branches de suivi, vous n'avez même pas besoin de spécifier - vous pouvez simplement faire ...

git pull

pendant que vous avez my_local_branchextrait, et il sera mis à jour à partir de la branche suivie.


Cela devrait être la bonne réponse. C'est aussi simple que ça.
m4l490n
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.