Respuestas:
Puede hacer referencia a esas ramas de seguimiento remoto ~ (enumeradas con git branch -r
) con el nombre de su control remoto.
Debe buscar la rama remota:
git fetch origin aRemoteBranch
Si desea fusionar una de esas sucursales remotas en su sucursal local:
git checkout master
git merge origin/aRemoteBranch
Nota 1: Para un repositorio grande con un historial largo, querrás agregar la --depth=1
opción cuando la uses git fetch
.
Nota 2: estos comandos también funcionan con otros repositorios remotos para que pueda configurar un origin
y un upstream
si está trabajando en una bifurcación.
Escenario opuesto: si desea fusionar una de sus sucursales locales en una sucursal remota (en lugar de una sucursal remota en una sucursal 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 su sucursal local" (aquí anotherLocalBranch
) con una sucursal remota ( origin/aBranch
).
Para eso, crea primero " myBranch
" como representación de esa rama remota: esa es la git checkout -b myBranch origin/aBranch
parte.
Y luego puedes fusionarte anotherLocalBranch
(a myBranch
).
aLocalBranch
" a " myBranch
", con " myBranch
" representando una sucursal remota origin/aBranch
.
aLocalBranch
que no es un error tipográfico, pero aprobó la última edición (¡2 años después!) Que corrige este "error tipográfico probable". Quería consultar con usted antes de deshacer la edición.
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
git fetch origin/branch-i-want-to-merge-from
primero, ¿verdad?
git fetch origin develop
seguido degit merge origin/develop
git merge
solo no lo hará.
git add .
-> git commit -m <message>
-> git push -u origin <branch>
?
Obtenga la rama remota desde el origen primero.
git fetch origin remote_branch_name
Fusionar la sucursal remota con la sucursal local
git merge origin/remote_branch_name
Tal vez desee rastrear la sucursal remota con una sucursal local:
git branch new-local-branch
git branch --set-upstream-to=origin/remote-branch new-local-branch
git checkout new-local-branch
git pull
Si ya buscó su rama remota y lo hace git branch -a
,
obtendrá algo como:
* 8.0
xxx
remotes/origin/xxx
remotes/origin/8.0
remotes/origin/HEAD -> origin/8.0
remotes/rep_mirror/8.0
Después de eso, puede usar rep_mirror/8.0
para designar localmente su sucursal remota.
El truco es que remotes/rep_mirror/8.0
no funciona pero rep_mirror/8.0
sí.
Entonces, un comando como git merge -m "my msg" rep_mirror/8.0
hacer la fusión.
(nota: este es un comentario a la respuesta @VonC. Lo puse como otra respuesta porque los bloques de código no se ajustan al formato del comentario)