git: mover confirmar antes de fusionarse

Mi tree de historia actualmente se ve así: enter image description here

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): enter image description here


Por lo tanto, lo que me gustaría saber es cómo hacer que a4 apunte ahora a b3 lugar de a b2 . enter image description here 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