web-dev-qa-db-fra.com

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

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 intégrer ces modifications. Devrais-je simplement faire:

git pull Origin my_remote_branch:my_local_branch

Est-ce la bonne façon?

81
skyork

Vous avez défini le amont de cette branche

(voir:

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

(git branch -f --track ne fonctionnera pas si la branche est extraite: utilisez plutôt la deuxième commande git branch --set-upstream ou vous obtiendrez "fatal: Cannot force update the current branch.")

Cela signifie que votre branche 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 lorsqu'il s'agissait de Push votre 'my_local_branch' ', un simple git Push -u Origin my_local_branch:my_remote_branch aurait suffi pour Push et définit la branche en amont.
Après cela, pour les tirages/poussées suivants, git pull ou git Push aurait, encore une fois, suffi.

58
VonC

Vous n'utilisez pas la syntaxe : - pull modifie toujours la branche actuellement extraite. Ainsi:

git pull Origin my_remote_branch

pendant que vous avez extrait my_local_branch fera ce que vous voulez.

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

git pull

tant que vous avez my_local_branch extrait, et il se mettra à jour à partir de la branche suivie.

68
Amber