¿Cómo fusionar ciertas twigs / compromisos parciales en git?

Tengo twigs alpha , beta y master . También tengo twigs feature_a , feature_b , feature_c y feature_d . Entonces yo:

  1. Combina feature_a en alpha
  2. Combina feature_b en alpha
  3. Combina feature_c en alpha
  4. Combina feature_d en alpha

Existen problemas con feature_b feature_d (o tal vez se han perdido una date límite y todavía están en process de testing), pero el rest está listo para ir a la twig beta .

¿Cómo podría fusionar solo seleccionar "twigs" en la twig beta desde alpha , para que solo feature_a y feature_c puedan fusionarse? ¿El historial y la ascendencia permanecerán intactos (suponiendo que las twigs de la característica se eliminen o se eliminen)?

Estoy adivinando algo en la medida de git merge beta feature_c...alpha , git merge beta feature_a...alpha (esos commands no funcionarán pero esa es la teoría detrás de lo que he intentado hasta ahora).

Si solo quieres fusionar algunas twigs, puedes fusionar solo esas twigs:

 git merge beta feature_a feature_a 

Ahora, si desea fusionar solo aquellas sucursales en el estado donde estaban cuando comenzó la publicación (es decir, cuando las fusionó en alpha ), entonces, podría labelrlas en el momento de esta combinación, con tags, por ejemplo, feature_a_release-n , etc …; para que al fusionarse en beta puedas hacer:

 git merge beta feature_a_release-n feature_b_release-n 

También podemos pensar en una alternativa, porque es posible que realmente desee fusionar las características entre sí para probarlas todas juntas, antes de proceder a la versión beta. En ese caso, en lugar de una twig alpha , es posible que desee hacer una twig por versión, por ejemplo: alpha-release-n . Y si observa un problema con una twig de características después de crear esta twig de publicación, puede crear una nueva, por ejemplo, alpha-release-n.2 , que no incorpore la twig no deseada.


Sin embargo, subjetivo final: este flujo de trabajo, con una twig característica por equipo, fue el utilizado por mi empresa hace un par de años. Desde entonces, el I + D se ha más que duplicado, y hemos encontrado algunos defectos en este flujo de trabajo. (por ejemplo, porque la integración tardía puede revelar conflictos después de unos días, lo cual es un feedback bastante tardío).

Sin entrar en muchos detalles, después de dedicar muchos esfuerzos a la configuration de testings fiables de no regresión en toda nuestra base de código, ahora solo nos comprometemos con el master y consideramos que debería poder entrar en producción en cualquier momento.