Git: fusionar una rama remota localmente
Saqué todas las ramas remotas a través de git fetch --all
. Puedo ver la rama a través de la cual me gustaría fusionar git branch -a
como controles remotos/origen/nombre de rama. El problema es que no es accesible. No puedo fusionar ni pagar.
Puede hacer referencia a esas ramas de seguimiento remoto ~ (enumeradas congit branch -r
) con el nombre de su control remoto.
Necesitas recuperar la rama remota:
git fetch origin aRemoteBranch
Si desea fusionar una de esas sucursales remotas en su sucursal local:
git checkout aLocalBranch
git merge origin/aRemoteBranch
Nota 1: Para un repositorio grande con un largo historial, querrás agregar la --depth=1
opción cuando uses git fetch
.
Nota 2: Estos comandos también funcionan con otros repositorios remotos, por lo que puedes configurar an origin
y an upstream
si estás trabajando en una bifurcación.
Nota 3 : el usuario3265569 sugiere el siguiente alias en los comentarios :
Desde
aLocalBranch
, ejecutegit combine remoteBranch
Alias:combine = !git fetch origin ${1} && git merge origin/${1}
Escenario opuesto: si desea fusionar una de sus sucursales locales en una sucursal remota (a diferencia de una sucursal remota con una local, como se muestra arriba), primero debe crear una nueva sucursal local encima de dicha sucursal remota:
git checkout -b myBranch origin/aBranch
git merge anotherLocalBranch
La idea aquí es fusionar "una de sus sucursales locales" (aquí anotherLocalBranch
) con una sucursal remota ( origin/aBranch
).
Para eso, primero crea " myBranch
" como representación de esa rama remota: esa es la git checkout -b myBranch origin/aBranch
parte.
Y luego puedes fusionarte anotherLocalBranch
con él (con myBranch
).
Cada vez que hago una fusión, entro en la rama en la que quiero fusionarme (por ejemplo, " git checkout branch-i-am-working-in
") y luego hago lo siguiente:
git merge origin/branch-i-want-to-merge-from
Primero busque la rama remota desde el origen.
git fetch origin remote_branch_name
Fusionar la sucursal remota con la sucursal local
git merge origin/remote_branch_name
Tal vez quieras rastrear la sucursal remota con una sucursal local:
- Crear una nueva sucursal local:
git branch -b new-local-branch
- Configure esta rama recién creada para rastrear la rama remota:
git branch --set-upstream-to=origin/remote-branch new-local-branch
- Ingresa a esta sucursal:
git checkout new-local-branch
- Extraiga todo el contenido de la rama remota a la rama local:
git pull