Estoy tratando de entender un buen flujo de trabajo de git usando capistrano. He encontrado un fewgoodarticles, pero o bien no entiendo completamente lo que sugieren (probable) o les falta algo.Git Workflow Con Capistrano
Aquí es algo de lo que tenía en mente hasta el momento, pero quedan atrapados cuando para fusionar de nuevo en la rama principal y tratando de conectar en Capistrano para implementaciones (es decir, antes de pasar a la etapa siguiente??):
- asegurarse de que está al corriente de todos los cambios realizados en la rama master a distancia por otros desarrolladores
git checkout master
git pull
- Crear una nueva rama que se refiere al error en particular que estamos tratando de corregir
git checkout -b bug-fix-branch
- Realice los cambios
git status
git add .
git commit -m "Friendly message about the commit"
Por lo tanto, esto es generalmente donde me atasco. En este punto, tengo una rama master que está sana y una nueva bug-fix-branch que contiene mis cambios (no probados - que no sean pruebas unitarias).
Si deseo pasar mis cambios al escenario (a través del cap staging deploy
), tengo que fusionar mis cambios nuevamente en la rama principal (preferiría no hacerlo ya que parece que el maestro debe mantenerse libre de código no probado) ? ¿Incluso puedo implementar desde el maestro (o debería etiquetar primero una versión y luego modificar mi archivo production.rb
para implementar desde esa etiqueta)? git-deployment parece abordar algunos de estos problemas de flujo de trabajo, pero parece que no puedo averiguar cómo diablos realmente se engancha en implementación de puesta a punto de tapa e implementación de producción de tapa.
¿Pensamientos? Supongo que hay una forma canónica probable para hacer esto, pero o bien no puedo encontrarlo o soy demasiado nuevo para reconocer que I tengo lo encontré.
¡Ayuda!
Sí, definitivamente estamos usando capistrano-ext (no podría imaginar volver). Tengo una pregunta con esta configuración, digamos que ha realizado algunos cambios desde el máster hasta el escenario en la preparación para ir a prod cuando aparece un error de tipo drop-everything en prod. Si crea una rama de corrección de fallas a partir de la última etiqueta de producción, ¿cómo la coloca en el escenario (y posteriormente en la producción) sin recoger los otros cambios? – jerhinesmith
ver comentario anexado a la respuesta. –
Lo sigo hasta el punto de "y finalmente para implementar en producción". Si creas una rama fuera de prod HEAD, arreglas el error, te fundes en master y luego en etapas (¿no sería una puesta en escena en ese momento?) ¿Tu nueva corrección de errores junto con cualquier otra característica ya se envió al escenario? ¿Cómo se fusiona de stage a prod para que ** solo ** el código de corrección de errores se mueva hacia arriba? Gracias de nuevo por la ayuda, realmente lo aprecio. – jerhinesmith