¿Cómo fusionar las características de las sucursales a las sucursales en Git?

Soy nuevo en Git y tengo una pregunta simple

Aunque esto se ha preguntado muchas veces en este foro, quiero restringir mi pregunta a la siguiente situación

1) Feature A (Files A, B and C were modified) cut from 'develop' 2) Feature B (Files A and D were modified) cut from 'develop' 

La característica A se ha fusionado en la twig 'desarrollar' con éxito

Ahora la pregunta es, ¿qué enfoque deberíamos seguir para fusionar 'Característica B' con la twig 'desarrollar'

¿Deberíamos extraer la última versión de 'desarrollar' y fusionar los cambios de 'característica b' (o) ¿Qué otros mejores enfoques para combinar la 'característica b' con 'desarrollar' para que 'Archivo A' tenga todos los cambios?

Si está solo trabajando en la twig FeatureB , el pull --rebase develop es la mejor práctica: está reproduciendo los cambios de FeatureB en la parte superior de FeatureA . (y git push --force after).

Si son varios desarrolladores que trabajan en FeatureB , se debe realizar una fusión de develop a FeatureB antes de fusionar FeatureB para desarrollar.

En ambos casos, la idea es la misma: probar la integración de ambas funciones localmente (extracción o rebase), antes de volver a fusionar para develop .

No se fusione para develop primero, "esperando" que el resultado (en develop ) sea "lo suficientemente bueno".

Digamos que no va a haber conflictos entre sus fusiones / rebases y trabaja localmente (no trae / tira / empuja) en aras de la simplicidad.

Básicamente hay dos forms de proceder. Fusionando o rebase. Ambos obtienen el mismo resultado. Usted decide dependiendo de su política de trabajo.

Puedes fusionar:

  // C3-C4 git checkout develop // / \ git merge featureB // C1-C2--C5--C6 

O puedes rebasear:

  // C3-C4 git checkout featureB // / git rebase develop // C1-C2--C5--C3'--C4' 

El código en la confirmación C6 y C4' es el mismo.

Si utiliza la política de "fusión", puede ver con una GUI (por ejemplo, gitk) las diferentes funciones que estaba haciendo rápidamente.

Si usa la política de "rebasamiento", puede seguir más fácilmente la evolución de su proyecto cuando usa commands como git log