Evita / elimina la confirmación de git sin perder otros cambios de compromiso

Supongamos que tenemos una twig A con los commits marcados C1 C2 C3 y C4. Mi necesidad es eliminar C2 y mantener todos los cambios realizados por cualquier otra confirmación.

De manera trivial, pensemos en un solo file de código donde en un commit C1 he introducido el functionOne, en C2 la function Two y así sucesivamente … hasta C4.

Mi idea era usar Cherry Picking con C1 C3 y C4, pero parece no funcionar o no ser la mejor solución.

¿Alguien tiene una idea de cómo podría llegar a lo que me gustaría hacer? ¿Cuál podría ser la mejor solución para evitar / eliminar un compromiso de una sucursal manteniendo el avance y el retraso en los cambios?

Puede usar una database interactiva : git rebase -i <origin-commit> .

En la list de confirmaciones, solo tiene que eliminar la línea que contiene la que desea eliminar y se eliminará de la twig rebasada.

Tenga en count que en realidad crea nuevas confirmaciones (tan a menudo con git) y tendrá que hacer una inserción forzada si la twig ya está compartida.