Mi tree de historia actualmente se ve así:
Me gustaría aplicar commit b3
al branch master. Por supuesto, podría fusionar de nuevo la feature
twig en master
pero la historia se verá desorderada con dos confusiones de fusión ( a6
y a4
que ahora son inútiles):
Por lo tanto, lo que me gustaría saber es cómo hacer que a4
apunte ahora a b3
lugar de a b2
. Reconozco que
SHA1
s será diferente, y por lo tanto los commit serán renombrados a4'
y a5'
Desde la twig principal, puede simplemente volver a establecer la base en la nueva b3
conservando las fusiones utilizando la opción --preserve-merges
(o -p
en resumen):
git rebase -p feature
De esta forma, cuando Git rebases, no intentará aplanar la fusión, sino que la volverá a crear sobre la nueva confirmación base. Entonces su historia se verá así:
master ↓ a1 -- a2 -- a3 --------- a4' -- a5' \ / \ / b1 -- b2 -- b3 ↑ feature
En comparación con lo siguiente cuando no se utiliza el --preserve-merges
:
master ↓ a1 -- a2 a3' -- a4' -- a5' \ / \ / b1 -- b2 -- b3 ↑ feature