Skip to content

Instantly share code, notes, and snippets.

@dasdo
Last active October 1, 2021 03:10
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dasdo/11dd0e7f52b7c93682f4f7d690d47caf to your computer and use it in GitHub Desktop.
Save dasdo/11dd0e7f52b7c93682f4f7d690d47caf to your computer and use it in GitHub Desktop.

#Nombrar los Branches

##Principales

Manejaremos 3 branches principales

  • development: Es la versión en la que vamos integrando los cambios de las mejoras. (Base de datos Falsa)
  • staging: Es la versión que se usará en las empresas "family" (BD productiva)
  • production: La versión en productivo actual (BD Productiva).

De ser necesario se agregaran mas branch dependiendo de las exigencias del proyecto

##Secundarios

Los branches secundarios son aquellos que tienen una importancia para el proyecto y estos estarán dentro de los repositorios con un tiempo de vida de 1 mes. Estos deben ser borrados por su creador y reportados a su project manager antes y después de eliminarlos.

Ejemplos

  • sprint1 (código correspondiente al sprint 1)
  • feature-report (Feature de reportes)
  • feature-login (auth de usuario)
  • feature-site (landing page del proyecto)

##Temporales

Los branchs temporales serán nombrados con la acción que se realizan en el. estos se deben trabajar local sin ser subidos al repositorio y es de entera responsabilidad del programador que lo creo de conservarlo o eliminarlo según crea necesario.

Ejemplos:

Corrección de errores en los reportes

  • fixed-report (correcciones generales)
  • fixed-report-sellers (correcciones a vendedores)
  • fixed-report-buyers (correcciones a compradores)

No se debe poner el nombre a un branch que no explique con claridad para que fue creado.

Ejemplos que no se deben usar:

  • daniel
  • oorden
  • js

##Merge branches Principales

Para la unión de los branches principales se harán de la siguiente forma.

merge desde los branches secundarios a development

ejemplo:

(development)$ git merge feature-report

Merge desde development a staging

ejemplo:

(staging)$ git merge development

Merge desde staging a production (Solo project manager)

(production)$ git merge staging

##Corrección de errores en staging

Los errores de staging son los descubiertos por los usuarios finales y deben de ser resueltos directos en el staging esta es una exepcion dentro de los push online. Los branches deben de comenzar con hotfix- para que sean facilmente identificado como correcciones en staging.

Pasos:

1- crear un branch desde staging (leer nombrar branch)

(staging)$ git branch hotfix-something

2- Corregir y hacer merge desde el branch creado a staging

(staging)$ git merge hotfix-something

3- merge desde development a staging ya corregido

(development)$ git merge staging 

##Cambios grandes

Si el sistema tendrá un cambio grande se debe crear un branch, este nuevo branch se nombrara "branch-pre/post-cambio" para recuperar los cambios si es necesario.

ejemplos:

  development-pre-vueToPhalcon
  development-post-mandrill

#Versión

Mctekk trabajara con el versionamiento mayor.menor.micro

  • mayor: el software sufre grandes cambios y mejoras.
  • menor: se agrega un nuevo feature.
  • micro: se aplican correcciones de errores.

Estas serán trabajadas y asignadas conjuntas a los realeses de los proyectos.

ejemplo:

  • 1.0.0 Primera salida del proyecto alpha
  • 1.0.1 Cambio rápido/Corrección de errores
  • 1.1.0 New feature
  • 1.2.5 New feature y corrección de errores

Los realeses y las versiones saldrán al finalizar los sprint

#FAQ

Quien pude subir los cambios a producción?

Solos los project manager pueden subir cambios a producción o personas que se les asigne esta tarea.

Si tengo un cambio pequeño debo crear un branch?

No es necesario, puedes trabajarlo en un branch (secundario) que tenga que ver con el feature que estés corrigiendo.

Si tengo un cambio considerable debe crear un branch?

Si, pero este solo debe de ser local y unido a uno que ya se encuentre online (secundarios). Esto es para evitar que la data de un branch secundario se vea comprometida directamente.

Si hay un cambio de urgencia en el branch de producción y no esta el project manager puedo subir el cambio?

  • En producción nunca debe de llegar un cambio de urgencia, todos los cambios deben pasar por development y luego staging para evitar que esto pase.
  • La responsabilidad es enteramente directa al project manager, en caso de que este no se encuentre buscar a otro compañero con la misma posición para buscar una solución.

Tengo conflictos con un branch ya que alguien mas publico uno con el mismo nombre, que hago?

Cambia el nombre al branch. para mantener la misma linea nombra el branch con el mismo nombre agregando le bk(backend) o ft(frontend)

git branch -m feature-report feature-report-bk // git branch -m old_branch new_branch

Que pasa si subo un branch temporal?

Este debe de ser eliminado para evitar tener una cantidad grande de branch en los repositorios online.

@kaioken
Copy link

kaioken commented Sep 23, 2016

Se ve bien Daniel ;)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment