2011-03-01 18 views
9

He estado usando la estrategia de ramificación git describe aquí http://nvie.com/posts/a-successful-git-branching-model/Git stategy ramificación de las ramas de funciones y código común

Hasta el momento su estado trabajando muy bien para mí.

La pregunta que a menudo me hago es cuando estoy trabajando en una rama de funciones y terminaré necesitando implementar un código que sea relevante para todo el proyecto. ¿Cuál es la mejor manera de manejar estas situaciones?

a) Eche un vistazo a la rama de desarrollo principal, comprometa el cambio y vuelva a establecer la bifurcación de la función de desarrollo.

b) Realice el cambio en la rama de características, luego vuelva a fusionar para que otras ramas de características puedan tener acceso a ese código.

c) Cree una nueva rama para el código común y combínelo en Develop, así como en cualquier rama de función que necesite usarlo.

Aquí hay otra pregunta. ¿Con qué frecuencia fusiona una rama de características en la rama de desarrollo principal? ¿Esperas hasta que la función esté completa y luego la fusionas y la eliminas? ¿O te vuelves a fusionar para desarrollar varias veces a lo largo de su vida en cualquier momento que sea estable?

Respuesta

4

Me gusta la opción a /, pero la realidad es que cuando haces commits después de commits, solo te das cuenta de que algunos de ellos son en realidad código mucho más tarde en el proceso.

Cuando eso sucede en una rama feature (que por lo general no se ha introducido todavía y compartida con), yo prefiero hacer un interactive rebase, cambiando el orden de las confirmaciones de código común primero, y luego la fusión de la rama master a la feature rama para aquellos n primeros commits (fusión de avance rápido).
A partir de ahí, puedo volver a clasificar en master cualquier otra rama que tenga que beneficiarse de esas nuevas características comunes.

La fusión de una rama de característica solo tiene sentido si el estado de esa rama de entidad debe ser visible para otros (porque desea presionar master manteniendo la rama feature privada en su repositorio).
Si el resto de la urbanización:

  • puede llevarse a cabo sin necesidad de ninguna parte de lo que está en la rama feature
  • puede proceder sin modificar un conjunto común de archivos (lo que implicaría una mucho más difícil combinar el más largo esperas entre master y feature ramas)

, entonces yo prefiero la fusión feature rama más tarde.

Cuestiones relacionadas