Git Workflows
Contenido:
- Single Flow
- GitHub Workflow
- Feature Branch
- Git flow
Single Flow
Este flujo de trabajo con git es muy útil cuando se trabaja individualmente, consta de un sólo branch.
GitHub Workflow
Este flujo de trabajo considera en crear un branch para agregar n cambios y gestionarlos mediante GitHub.
- Se crea un branch
- Se agregan los cambios
- Se actualiza el repositorio remoto de GitHub
- Se abre un Pull Request
- Se efectúa un code review
- Se mezclan los cambios
- Despliegue
Abrir pull request
La pestaña de Pull Request tendrá los PR realizadosAhi mismo se podrá mezclar el PR
Feature Branch
Esta es una forma de trabajar con git basada en desarrollar features, para ello la mayoría de las plataformas de repositorios remotos tienen la misma funcionalidad implementada.
- Identificar los issues a crear
- Asignarles un identificador por issue mediante la plataforma. Cada issue será un branch.
- Identificar los ambientes de desarrollo que se considerarán como branches independientes: desarrollo(master), QA, STAGE, UAT, PROD.
- Cada uno de estos branch se desplegará por separado.
- Cada branch correspondiente a un issue se mezclará a cada branch correspondiente a los ambientes.
Asignación de issuesEjemplo del log de un proyecto versionado con feature-branch:
* 710d6b0 hace 3 meses carlogilmar #38 Modify medical records endpoint
* be7725a hace 4 meses Jorge Acosta Lemus #17 Adding wkhtmltopdf binary and modify jenkinfile to add binary to container
* 41cc24c hace 4 meses carlogilmar #22 Adding styles in the email body
* 05c33b7 hace 4 meses carlogilmar #16 Implement emails and missing endpoints
* 1c4ecd0 hace 4 meses carlogilmar #19 Implement security auth in pdf generator endpoint
* 9445f2c hace 4 meses carlogilmar #21 Create a second endpoint for the new pdf
* bf731c4 hace 4 meses carlogilmar #20 Create endpoint for generate pdf
* 91a4316 hace 4 meses carlogilmar #18 tore the pdf information as medical record and create endpoints for save and get by email
* cbf9978 (origin/feature/15, master-bk, feature/15) hace 4 meses carlogilmar #15 Connect endpoint medical record to generate a pdf
* 7ec6c47 (origin/feature/14, feature/14) hace 4 meses carlogilmar #14 Create the sanofi pdf format
* a4e46e8 hace 4 meses carlogilmar #11 Add endpoint for get the medical record id
* 305a454 hace 4 meses carlogilmar #12 Adding email notification when activate an user
* 483a13f (origin/feature/13, feature/13) hace 4 meses carlogilmar #13 Create a pdf
* 7ada7f2 (origin/feature/7, feature/12) hace 4 meses carlogilmar #7 Adding config for deploy webapp in qa environment
* 769a88b hace 4 meses carlogilmar #6 Create validation view
* 1e66e76 (origin/feature/5, feature/5) hace 4 meses carlogilmar #5 Implement sanofi assets
* 55e57ad hace 4 meses carlogilmar #4 Adding login with guardian for the web app
* 1369751 hace 4 meses carlogilmar #3 Adding views to the phoenix project
* 5ce232f hace 4 meses carlogilmar #2 Adding endpoint for validate a user
* 742d97f hace 5 meses carlogilmar #1 Adding deploy config
Git Flow
- Se consideran 2 branches principales
- Master: guardará el histórico de las versiones
- Develop: branch de integración
- Del branch develop nacerán los feature-branch que serán integrados finalmente a develop
- Para preparar el despliegue de un release se hará un release-branch, que nacerá de develop e integrará los ajustes y cambios necesarios para preparar la versión. Finalmente se integrará a master y a develop
- Cuando exista la necesidad de ajustar un estado no deseado se creará un hotfix-branch, este nacerá de master, llevará los cambios y ajustes y se integrará a master y develop.
Branches principales
Feature BranchRelease BranchHotfix-branch
Ilustraciones tomadas de BitBucket