Git se registra en la sucursal si el maestro no está sincronizado

Recientemente me mudé de svn a git, disculpe mi pregunta de novato.

En nuestro process de lanzamiento, codificamos contra el maestro (y las twigs de desarrollo), tenemos lanzamientos cada pocas semanas, en ese momento, creamos una twig y lanzamos contra esa twig.

Las correcciones de errores van a la sucursal y actualizamos el server de lanzamiento con esas correcciones.

Ahora, cuando trato de hacer esto en git e bash realizar cambios en la twig de publicación, no me permite confirmar y enviar cambios a la twig a less que mi maestro esté sincronizado con el origen / maestro. Esto se vuelve complicado si hay muchas twigs de publicación, ahora tengo que asegurarme de que cada una de ellas esté sincronizada antes de que pueda corregir un error en un lanzamiento y registrarlo.

¿Cómo resuelves este problema?

Mi equipo actualmente está realizando lanzamientos exactamente como lo describiste en SVN. Código contra troncal, twig y lanzamiento.

Con Git, el flujo de trabajo cambió: el master combina la producción y nunca se toca, la creación y eliminación de twigs no es dolorosa y es 'barata como una viruta' en Git, por lo que cada cambio / revisión / desarrollo siempre va contra una sucursal. Esto también le permite rastrear cada desarrollo por separado.

Una vez que el desarrollo se completa y se testing, combine con master , tag y release. Para una solución hot, branch master , testing, suelta y fusiona al master .

Para las personas que se desarrollan en otras twigs, las twigs pueden volver a actualizarse fácilmente mediante la merge .

Eche un vistazo a cómo se desarrolla Github usando git, una lectura muy interesante que debería responder a su pregunta: https://github.com/usm-data-analysis/usm-data-analysis.github.com/wiki/Developing-with- git

¿Estás haciendo "git push"? Puede presionar una sola twig (en lugar de todas con nombres que coincidan) usando "git push origin somebranch".

Estás usando un simple git push . Por defecto, git push intentará presionar cada twig. Puede configurar su configuration para usar push.default = tracking.

 git config push.default tracking 

o

 git config --global push.default tracking 

Con push.default = tracking, git push solo presionará la twig actual.