No veo el problema aquí.
Ya tiene esto cada vez con su master
sucursal, que sigue cambiando mientras se desarrollan y fusionan las características.
Entonces, en su ejemplo concreto, primero crea la feature_xxx_backend
rama y desarrolla los cambios de back-end. Cuando se hace esto, la sucursal está lista para revisión y se fusionará master
una vez que se complete la revisión.
Por lo tanto, sólo tiene que iniciar otra rama, feature_yyy_frontend
. Probablemente querrá ramificarse directamente desde feature_xxx_backend
, para que tenga esos cambios ya en su sucursal. luego, simplemente desarrolle la función de interfaz como la rama master
.
Cuando la feature_xxx_backend
rama cambia, por ejemplo, porque hay cosas que surgen durante la revisión que deben abordarse, simplemente haga estos cambios y combínelos en la feature_yyy_frontend
rama. Luego continúe en la rama frontend.
Una vez que se completa la revisión de la rama back-end, se fusiona master
. En este punto, sería aconsejable cambiar la base de la feature_yyy_frontend
rama master
, de modo que los revisores solo necesiten revisar los nuevos cambios a los que contribuye esta rama master
, y no tengan que volver a revisar los cambios realizados para el backend (que ya han sido aprobados )
Esto también se puede hacer cuando tiene dos, tres o más ramas dependientes. Si tiene dos ramas de características de las que depende, simplemente haga una rama derivada que tenga ambas características fusionadas. Rama desde allí, desarrolle la tercera característica, combine ambas ramas de características en el camino cuando cada una de ellas cambie. Cuando ambas características están hechas y se fusionan en la rama derivada, se vuelve a basar en eso, o si se fusionan en maestro, se vuelven a fusionar en maestro.
La reformulación (como se sugirió anteriormente) es realmente poderosa y ayuda a mantener un registro limpio de los cambios, lo que facilita mucho las revisiones.