Enmendar el post de compromiso de Git hecho antes de una fusión

Cometí algún código de testing antes de fusionarme en una twig remota. Esta fusión tuvo muchos conflictos y tomó un time serio para corregir. Entonces mi historia se ve así:

7ab562c Merge from remote branch ... whole load of commits brought across from the remote branch... f3e71c2 Temporary TESTING COMMIT 

El código de testing está bien, realmente solo quiero cambiar el post de confirmación. Normalmente iría adelante con un git rebase -i f3e71c2^ (ya que nada de esto ha sido empujado), pero un colega me dijo que esto arruinaría la fusión. Realmente no quiero estropear la fusión 🙂

¿Mi colega está en lo correcto? Y si es así, ¿hay algo que pueda hacer, o simplemente necesito vivir con esta historia?

Puedes probar un git rebase --preserve-merges --interactive , con:

 -p --preserve-merges 

En lugar de ignorar las fusiones, intente recrearlas.

La sección BUG de la página man incluye:

La list de --preserve-merges --interactive presentada por --preserve-merges --interactive no representa la topología del gráfico de revisión.
La edición de las confirmaciones y la reformulación de los posts de confirmación deberían funcionar bien, pero los bashs de reorderar las confirmaciones tienden a producir resultados contradictorios.


Como el comentario de jthill describe (ya que -p conservará mejor las fusiones si las resoluciones de conflictos fueran grabadora):

Puede retroactivamente rerere para una fusión:

 git config rerere.enabled true git checkout $merge^1 git merge $merge^2 git read-tree --reset -u $merge git commit -m- git checkout @{-1} 

Si y solo si sus colegas no han empujado / tirado los cambios ontop de f3e71c2 en otro lugar, esto funcionará. De lo contrario, no sé lo que sucederá. Cambiar el post de confirmación es totalmente cosmético (== cambio de metadatos), dado que aún no ha enviado la confirmación que desea modificar, pero esto podría ocasionar confusión en el historial si sus colegas han presionado / retirado alguna parte del historial. que está encima de eso.

(gracias a Abizern por señalar este modo de falla)