¿Cómo se libera selectivamente una buena sucursal y no una sucursal mala si la sucursal mala fue la primera?

Estoy trabajando específicamente dentro de los confines de git-flow aquí. Para mí es muy claro cómo esto se lograría con git en general, pero git-flow es lo que más me preocupa aquí.

Imagina este escenario:

  • el desarrollador 1 y el desarrollador 2 trabajan en paralelo.
  • el desarrollador 1 y el desarrollador 2 tienen muchos problemas pequeños.
  • el desarrollador 1 termina su primera sucursal, la llamaremos feature/A feature/A se atesting rápidamente y se fusiona para develop
  • el desarrollador 2 finaliza su primer problema, lo llamaremos feature/b . feature/B se atesting rápidamente y se fusiona para develop
  • el desarrollador 2 ahora debe iniciar feature/C Así que él revisa el desarrollo, y no se mueve git pull upstream develop luego git pull upstream develop git checkout -b feature/C
  • Desarrollador 2 acabados feature/C feature/C se atesting rápidamente y se fusiona para develop

¡Pero espera! Hay un problema. ¡Hemos descubierto un error de feature/A y el lanzamiento es mañana! Necesitamos liberar B y C pero no A. ¿Cómo hago eso? Todos los commits desde feature/A están contenidos en feature/C

Necesita revertir la feature/A : use git revert .

Puede generar una nueva confirmación en la feature/C que cancelará todas las confirmaciones de la feature/A
(Puedes revertir múltiples commits, incluso un range de commits de esa manera)
Luego fusionas feature/C para develop nuevamente.