git - tag - ¿Cómo relaciona los cambios de la sucursal actual con los cambios que se fusionaron?
git push tag (3)
Bueno. Si estoy en una rama (por ejemplo, working
), y deseo fusionarme en los cambios desde otra rama (por ejemplo, master
), ejecuto el comando git-merge master
mientras estoy en la rama de working
, y los cambios se fusionan sin rebase la historia en absoluto. Si ejecuto git-rebase master
, los cambios en el master
se vuelven a configurar para colocarlos en la parte superior de mi rama de working
. Pero, ¿qué sucede si deseo fusionarme en los cambios de la versión master
pero reestablecer mis cambios en el working
para estar en la cima? ¿Cómo puedo hacer eso? Se puede hacer?
Podría ejecutar git-rebase working
en mi rama master
para poner mis cambios en la rama master
, pero me gustaría poder hacerlo en mi rama de working
, y no tengo idea de cómo. Lo más cercano que se me ocurre hacer es crear una nueva rama de master
y luego volver a working
los cambios de trabajo además de eso, pero luego tendría una nueva rama en lugar de modificar la rama de working
.
Acabo de hacer esto hace momentos de la siguiente manera:
- haga una copia de seguridad de su trabajo actual en progreso
git checkout -b work-in-progress
- buscar los últimos cambios
git fetch origin/master
- descartar cualquier cambio local.
git reset --hard origin/master
- reproducir los últimos cambios desde el
git rebase origin/master
de mastergit rebase origin/master
- repite tu trabajo en progreso
git rebase origin/work-in-progress
- sincroniza tu trabajo en progreso con el último master
git rebase origin/master
Otra forma de verlo es considerar git rebase master
como:
Rebase la rama actual encima del
master
Aquí, '' master
'' es la rama ascendente , y eso explica por qué, durante una rebase, la ours
y la de theirs
se invierten .
Tienes lo que la rebase
hace al revés. git rebase master
hace lo que estás pidiendo: toma los cambios en la rama actual (ya que diverge de la maestra) y los reproduce en la parte superior de master
, luego establece que la cabeza de la rama actual sea la cabeza de esa nueva historia. No reproduce los cambios desde el master
en la parte superior de la rama actual.