2012-06-30 7 views

Respuesta

44

ha definido los aguas arriba de esa rama

(ver:

 
git branch -f --track my_local_branch origin/my_remote_branch 
# OR (if my_local_branch is currently checked out): 
$ git branch --set-upstream-to my_local_branch origin/my_remote_branch 

(git branch -f --track won no funciona si el b rancho está desprotegido: utilizar el segundo comando git branch --set-upstream lugar, o si quiere conseguir "fatal: Cannot force update the current branch.")

Eso significa que su rama es already configured con:

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

Git ya tiene toda la información necesaria.
En ese caso:

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

es suficiente.


Si no hubieran establecer esa relación derivada ascendente cuando se trataba de empujar a su 'my_local_branch', entonces un simple git push -u origin my_local_branch:my_remote_branch habría sido suficiente para empujar y establecer la rama ascendente.
Después de eso, para las siguientes operaciones/impulsos, git pull o git push habrían sido, de nuevo, suficientes.

+0

El OP menciona que ya están rastreando la rama remota. – Amber

+3

@Amber por lo tanto, mi respuesta: 'git pull' es suficiente. – VonC

+0

El primer comando 'git branch -f --track master origin/master' devuelve un error:' fatal: no se puede forzar la actualización de la rama actual'. –

39

No usa la sintaxis : - pull siempre modifica la rama actualmente desprotegida. Por lo tanto:

git pull origin my_remote_branch 

mientras tiene my_local_branch desprotegido va a hacer lo que quiere.

Como usted ya tiene el conjunto de la rama de seguimiento, usted ni siquiera necesita para especificar - sólo se podía hacer ...

git pull 

mientras tiene my_local_branch realizado el pedido, y va a actualizar desde el seguimiento rama.

+0

Esta solución simple funcionó para mí. – pratyush

Cuestiones relacionadas