git beanstalkapp staging branch tiene todos los cambios desde la twig master pero master no tiene todos los cambios desde la etapa

Usamos beanstalkapp para administrar nuestras revisiones de código, implementaciones, etc. Tenemos una Branch de etapas y una Branch master.

Nuestro process es localmente

git checkout master && git pull (siempre se realiza el pago y se obtiene el último)
git checkout -b NAMEOFBRANCH (Crea una nueva twig de MASTER para trabajar) Haz nuestros cambios
git add. && git commit -m 'Mi post de confirmación' (Agregar todo cambiado y confirmar)
git push -u origen NAMEOFBRANCH (Empuje la confirmación hacia beanstalkapp)

En beanstalkapp, veo mi twig. Cambio la twig de base a puesta en escena y fusiono mi twig en puesta en escena. Beanstalkapp se configura automáticamente para implementar en nuestro server de transferencia.

Pon a testing mis cambios en nuestro sitio de ensayo.

Todo se ve bien, vuelvo a mis twigs en beanstalkapp, me aseguro de que la twig base sea maestra y fusiono mi twig con el maestro (después de una revisión del código).

Entonces puedo implementar en nuestro server de producción. Todo es bueno en cuanto a lo que está en el server intermedio y lo que está en el server de producción.

Cuando comparo la puesta en escena con el maestro, beanstalkapp muestra que la puesta en escena tiene todos los cambios del maestro de twigs.

Cuando reverso esa comparación, veo un montón de Revisiones que no están en etapas, pero no en el maestro.

¿Cómo puede ser esto si fusiono la misma twig primero en la twig de etapas y luego en la maestra? ¿Cómo los hago sincronizados? Existe una política estricta de nunca sincronizar la etapa de masterización (por razones obvias), pero la ejecución maestra está bien (lo cual he intentado).

La comparación en Beanstalk es en realidad comparar los commits que existen en una twig y no existen en otra. Deje que ilustre a continuación charts:

Supongamos que la estructura de la twig se ve a continuación al principio:

…---A master …---B staging 

Después de que git checkout -b newbranch , y git checkout -b newbranch cambios C y D en él:

 …---A master \ C---D newbranch …---B staging 

Después de fusionar newbranch en staging en staging (el commit de fusión es E ):

 …---A master \ C---D newbranch \ …---B-------E staging 

Después de fusionar newbranch en master (el commit de fusión es F ):

 …---A-------F master \ / C---D newbranch \ …---B-------E staging 

Cuando compara master con staging (maestro-> comparación de etapas), se mostrará que las confirmaciones existen en etapas pero no existen en la twig maestra (maestro de git log master..staging ). Mostrará confirmaciones A y F como en el gráfico anterior.

Cuando compare la staging en staging con el master ( staging en escena-> Comparación maestra), se mostrará que las confirmaciones existen en el master pero no existen en la ramificación de staging ( git log staging..master ). Mostrará confirmaciones B y E como en el gráfico anterior.


Si desea sincronizar el master con la staging en staging , debe fusionar la staging en master :

 …---A--------------------F' master \ / C---D newbranch / \ / …---B-------E--------- staging 

Y si desea que las twigs master y de staging apunten al mismo compromiso, puede avanzar rápidamente en la twig de staging combinando el master en staging . Entonces la estructura se verá así:

 …---A--------------------F' master, staging \ / C---D newbranch / \ / …---B-------E---------