Git: fusionar una rama remota localmente

Resuelto micahblu asked hace 10 años • 5 respuestas

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 -acomo controles remotos/origen/nombre de rama. El problema es que no es accesible. No puedo fusionar ni pagar.

micahblu avatar Feb 09 '14 03:02 micahblu
Aceptado

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=1opción cuando uses git fetch.

Nota 2: Estos comandos también funcionan con otros repositorios remotos, por lo que puedes configurar an originy an upstreamsi estás trabajando en una bifurcación.

Nota 3 : el usuario3265569 sugiere el siguiente alias en los comentarios :

Desde aLocalBranch, ejecute git 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/aBranchparte.
Y luego puedes fusionarte anotherLocalBranchcon él (con myBranch).

VonC avatar Feb 09 '2014 00:02 VonC

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

Michael Dautermann avatar Feb 08 '2014 20:02 Michael Dautermann

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
Lanil Marasinghe avatar Dec 12 '2018 05:12 Lanil Marasinghe

Tal vez quieras rastrear la sucursal remota con una sucursal local:

  1. Crear una nueva sucursal local:
  git branch -b new-local-branch
  1. Configure esta rama recién creada para rastrear la rama remota:
  git branch --set-upstream-to=origin/remote-branch new-local-branch
  1. Ingresa a esta sucursal:
  git checkout new-local-branch
  1. Extraiga todo el contenido de la rama remota a la rama local:
  git pull
e18r avatar May 08 '2015 03:05 e18r