Git: deshace el commit de fusión publicado y aplica otra fusión de los mismos commits

Un desarrollador fusionó feature2 branch en feature2 e impulsó los resultados, pero resolvió algunos conflictos de combinación incorrectamente. feature2 commit B desde feature2 y feature2 correctamente en commit B desde feature2 ( A y B son los mismos commits que el otro desarrollador fusionó).

Cometí el resultado de la fusión con un jefe separado, y ahora necesito revertir el compromiso de fusión del otro desarrollador y aplicar el mío propio a feature1 . ¿Cómo puedo hacer esto?

La forma peligrosa:

1) Etiquete su compromiso separado, es decir, git tag temp .

2) feature1 twig feature1 .

3) Use git reset --hard temp para mover su copy local de la twig para señalar su compromiso.

4) Use git push -f origin feature1 para sobrescribir la versión duodgy en origin .

5) Eliminar la label con la label git tag -d temp .

Haz todo esto con cuidado y usa gitk para ver lo que estás haciendo. Asegúrese de que nadie más esté usando el origin en ese momento. Si es paranoico, marque la comisión de su colega también antes de comenzar a hacer todo esto (una buena idea en caso de que se equivoque).

IMPORTANTE: Si alguien más ha basado el trabajo en la fusión de su colega, piense mucho antes de hacerlo de esta manera. Todos terminarán necesitando volver a establecer la base en su nueva confirmación.