¿Cómo mantener actualizada la twig de publicación?

Utilizo Branch master para el desarrollo y release de material relacionado con la versión. Idealmente me gustaría que se vean así antes de cada lanzamiento:

  v release o - o - o / o - o - o - o ^ master 

Esto se puede lograr reescribiendo la liberación en el master , sin embargo, empujar la release al origen se vuelve problemático. ¿Cómo manejar esto mejor?

La forma habitual de manejar esta situación sería forzar el envío de la twig de release al control remoto, a través de:

 git checkout release git push --force origin release 

Como probablemente sospeche, esto se vuelve problemático porque reescribe el historial de la twig de release pública, lo que significa que cualquier otra persona que saque esta twig podría get resultados inesperados.

Sin embargo, echemos un vistazo más de cerca al significado de la twig de release . Por lo general, una twig de publicación podría existir porque se necesitan muchas funciones para lograr un hito en su producto de software. Una vez finalizada la liberación, la twig correspondiente podría congelarse y comprometerse aún más. Si se necesitan soluciones para la versión, déjelos entrar en una nueva twig.

Para llegar a la línea de background, sería bastante seguro al volver a basar la twig de release en el master y empujar la fuerza si pocas personas, o incluso nadie, necesitaban sacar de nuevo esta twig. Y este punto en el time sería precisamente cuando se libere el lanzamiento, momento en el cual toda actividad en su twig de release debería cesar.

Entonces, mi consejo sería forzar el empuje de su twig de release al final del ciclo.

Como se mencionó Fireflieslive, debería usar merge en lugar de rebase. De esa manera, tu historia se verá así:

  v release(1) v release(2) o - o - o ------- o - o - o / / o - o - o - o - o - o - o - o - o ^ master(1) ^ master(2) 

donde ahora he representado dos lanzamientos diferentes (y el estado del maestro en el momento de ese lanzamiento).

Concretamente, cada vez que quiera liberarlo, haga

 git checkout release git merge master <edit release related stuff and commit> 

usar merge lugar de rebase

La regla de oro de git rebase es nunca usarlo en sucursales públicas

atlassian git tutorial