Cómo fusionar el maestro remoto con la sucursal local
Tengo una rama local de un proyecto ("configUpdate") que bifurqué del proyecto de otra persona y le hice muchos cambios y me gustaría fusionar los cambios que hicieron en mi rama local.
He intentado
git pull --rebase origin configUpdate
pero no ha captado los últimos cambios. ¿Cómo puedo fusionar los dos? (también para puntos extra ¿qué hice con el pull --rebase
comando?)
Desde su rama de funciones (por ejemplo configUpdate
), ejecute:
git fetch
git rebase origin/master
O la forma más corta:
git pull --rebase
Por qué esto funciona:
git merge branchname
toma nuevas confirmaciones de la ramabranchname
y las agrega a la rama actual. Si es necesario, agrega automáticamente una confirmación de "Fusionar" en la parte superior.git rebase branchname
toma nuevas confirmaciones de la ramabranchname
y las inserta "debajo" de sus cambios. Más precisamente, modifica el historial de la rama actual de modo que se base en la punta debranchname
, con cualquier cambio que haya realizado además de eso.git pull
es básicamente lo mismo quegit fetch; git merge origin/master
.git pull --rebase
es básicamente lo mismo quegit fetch; git rebase origin/master
.
Entonces, ¿por qué querrías utilizar git pull --rebase
en lugar de git pull
? He aquí un ejemplo sencillo:
Empiezas a trabajar en una nueva característica.
Cuando esté listo para implementar los cambios, otros desarrolladores habrán realizado varias confirmaciones.
Si usted
git pull
(que usa la combinación), sus cambios quedarán ocultos por las nuevas confirmaciones, además de una confirmación de combinación creada automáticamente.Si,
git pull --rebase
en cambio, git avanzará rápidamente su maestro a upstream y luego aplicará los cambios en la parte superior.
Descubrí que era:
$ git fetch upstream
$ git merge upstream/master