¿Cómo deshacer los cambios confirmados en la línea principal de una rama de características pero mantener la rama actualizada?

De vez en cuando podemos encontrarnos con problemas en los que asignamos una rama de función a nuestra línea de base y descubrimos que en algunas situaciones puede salir terriblemente mal, por lo que el cambio debe revertirse, sin perder todos los demás compromisos realizados desde entonces. Sin embargo, alguien necesita seguir trabajando en la rama original.

No quiero usargit rebase en la línea principal para cambiar la historia (porque eso causaría todo tipo de problemas por sí mismo), pero cuando lo hagogit revert en la línea principal luego tan pronto comogit merge se ejecuta en la sucursal, para recoger cualquier otro cambio realizado en el sistema, luego todo el trabajo realizado desaparece.

¿Qué puedo hacer para mantener intactos los cambios en la rama?

Respuestas a la pregunta(3)

Su respuesta a la pregunta