Estoy usando Git para uno de mis proyectos en este momento, y me encanta.
Sin embargo, como soy el único que trabaja en mi proyecto, los únicos commands que he estado usando son
git status git add . git commit -m 'message here' git push origin master
He empujado el proyecto a remoto hace mucho time (I Capistrano para el deployment), y todo está funcionando muy bien.
Ahora quiero cambiar el layout del sitio, pero mantener la lógica intacta. Supongo que necesito crear una nueva twig (llamémosle nuevo newdesign
) para eso.
Lo que me pregunto, sin embargo, es esto: si estoy trabajando en la newdesign
twig de newdesign
, y veo un error en la twig master
, ¿cómo puedo arreglar el error en el master
y luego integrar esa corrección de errores en la newdesign
twig de newdesign
, por lo que este último se mantenga actualizado con la lógica real?
Este es un caso clásico en el que puedes aprovechar las twigs de Git. Aquí está el flujo de trabajo que debe usar.
Supongamos que ha creado una twig de develop
derivada de master
y ha realizado algunas confirmaciones en esa twig:
De repente, te das count de que necesitas corregir rápidamente un error en el master
; en lugar de trabajar directamente fuera del master
, debe crear una twig de corrección de errores de corta duración para aislar la tarea de corrección de errores de su twig master
:
git checkout master git checkout -b bugfix
Después de hacer una confirmación (o más) en la twig de corrección de errores para solucionar el problema,
debe asegurarse de que todo funcione como debería (ejecutar testings, etc.). Cuando esté satisfecho con el estado de su código en la bugfix
de bugfix
, bugfix
en master
:
git checkout master git merge bugfix
En esa etapa, puede empujar su twig master
(ahora fija) a remota, y eliminar la twig de bugfix
:
git push origin master git branch -d bugfix
Ahora, para integrar los últimos cambios en el develop
master
, básicamente tienes dos opciones.
Merge master
en develop
, ejecutando:
git checkout develop git merge master
Alternativamente, rebase develop
sobre el master
, ejecutando:
git checkout develop git rebase master
En cualquier caso, su twig de develop
ahora contendrá la corrección de errores, y puede reanudar el trabajo en ella.
supongamos que tienes tus twigs maestra y dev.
Trabajas en desarrollo para tus nuevas características y haces tu corrección en master.
Luego, desprotege dev y merge master en dev. De esta forma, el maestro es fijo y Dev puede beneficiarse de la solución que hayas hecho Y guarda su propia historia.
Alternativamente, puede volver a crear la database dev en la parte superior de la twig. Esto le da una historia "más limpia" en el sentido de que no tiene puntos de fusión.
Vea la guía de git sobre la fusión: http://git-scm.com/docs/git-merge