Tengo una rama local llamada 'mi_rama_local', que rastrea una rama remota
origen/mi_rama_remota`.
Ahora, la rama remota se ha actualizado, y estoy en la 'mi_rama_local`' y quiero tirar de esos cambios. ¿Debo hacer:
git pull origin my_remote_branch:my_local_branch
¿Es esta la forma correcta?
No se utiliza la sintaxis :
- pull
siempre modifica la rama actualmente comprobada. Así:
git pull origin my_remote_branch
mientras tienes "mi_rama_local" seleccionada hará lo que quieres.
Como ya tienes la rama de seguimiento establecida, ni siquiera necesitas especificar - podrías simplemente hacer...
git pull
mientras que usted tiene mi_rama_local
comprobado, y se actualizará desde la rama de seguimiento.
Ha establecido la corriente ascendente de esa rama
(ver:
--set-upstream-to
todo el tiempo?"
)git branch -f --track mi_rama_local origen/mi_rama_remota # O (si mi_rama_local está actualmente comprobada): $ git branch --set-upstream-to my_local_branch origin/my_remote_branch
(git branch -f --track
no funcionará si la rama está retirada: utiliza el segundo comando git branch --set-upstream
en su lugar, o obtendrás "fatal: Cannot force update the current branch.
")
Eso significa que tu rama está ya configurada 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 hubieras establecido esa relación de rama ascendente cuando se trata de empujar tu 'mi_rama_local', entonces un simple
git push -u origen mi_rama_local:mi_rama_remotahabría sido suficiente para empujar *y* establecer la rama ascendente. Después, para los siguientes pulls/pushes,
git pullo
git push` habrían sido, de nuevo, suficientes.