Usando gitflow, al crear una release-1.0.0
rama y la fusión a la vez master
y develop
, ambas ramas tendrán una confirmación que faltan:
master
no tendrá el commit donderelease-1.0.0
se fusionódevelop
develop
no tendrá el commit donderelease-1.0.0
se fusionómaster
En su lugar, después de hotfix-1.0.1
crearse y fusionarse master
, cuando se fusiona develop
, los commits para fusionar incluirán el commit anterior donde release-1.0.0
se fusionó master
; así se verá así:
User 'john doe' is trying to merge the following commits into 'develop' from 'hotfix-1.1.1'.
* merge release-1.0.0 to master
* merge release-1.1.0 to master
* Fix shopping cart critical bug
Si esto suena confuso, puede notar fácilmente que todo lo que ve develop
es generalmente un par de commits detrás master
(aunque el desarrollo, en teoría, solo debería estar adelante ya que es la rama principal. Esos commits son fusiones de release-x.x.x
a master
).
¿Cómo se debe manejar esto para mantener un historial limpio?
Respuestas:
Creo que un buen enfoque es evitar tener dos ramas "principales", master y desarrollo, que son redundantes. Aquí se explica a fondo , calificado
cactus-flow
por el autor.Algunos puntos se destacan en lugar de git-flow:
Para mí, el último es importante, ya que después de usar git-flow durante mucho tiempo aún no he visto qué es útil sobre las
--no-ff
fusiones.En mi humilde opinión, ese es tu gran error. No hay razón para que te quedes con git-flow tanto como sea posible. Puede usarse en miles de proyectos, pero eso no afecta el suyo, no lo hace bueno.
Git-flow es un buen punto de partida, pero debería pensar en adaptarlo a sus herramientas y flujo de trabajo en lugar de al revés.
fuente