Git Flow

¿Qué es Git Flow?

A lo largo de nuestra jornada de trabajo necesitaremos ejecutar varias veces al día los comandos git, merge, push y pull así como hacer checkouts de diferentes ramas, borrarlas, etc.

Git Flow son un conjunto de extensiones que nos ahorran bastante trabajo a la hora de ejecutar todos estos comandos, simplificando la gestión de las ramas de nuestro repositorio.

Ramas en Git Flow

Master –> Cualquier commit que pongamos en esta rama debe estar preparado para subir a producción.  Cada vez que se incorpora código a master, tenemos una nueva versión.

 

Develop –> Está el código que conformará la siguiente versión planificada del proyecto.

 

Feature –> Funcionalidades nuevas de la aplicación.

.- Origen:  develop

.- Merge con:  develop

.- Nombre:  cualquiera que no sea master, develop, hotfix-* o release-*

 

Release –> Se prepara el siguiente código en producción. En estas ramas se hacen los últimos ajustes y se corrigen los últimos bugs antes de pasar el código a producción incorporándolo a la rama master.

.- Origen:  develop

.- Merge con:  master y develop

.- Nombre:  release-*

 

Hotfix –> Corregir errores y bugs en el código en producción.

.- Origen:  master

.- Merge con: master y develop

.- Nombre:  hotfix-*

 

Support –> ?¿

.- Origen:  

.- Merge con:

.- Nombre:  

 

Uso de GIT FLOW

Instalación

sudo apt-get install git-flow

Inicializar un proyecto con Git Flow

mkdir nombreProyecto
cd nombreProyecto
git init
git flow init

No branches exist yet. Base branches must be created now.
Branch name for production releases: [master]
Branch name for "next release" development: [develop]

How to name your supporting branch prefixes?
Feature branches? [feature/]
Release branches? [release/]
Hotfix branches? [hotfix/]
Support branches? [support/]
Version tag prefix? [] v

Al ejecutar git flow init nos pregunta el nombre de las ramas master y develop y demás ramas, dejamos todo por defecto.

Al realizar este comando realiza todas estas acciones por nosotros:

  • Crea la rama master
  • Crea la rama develop
  • Nos pasa a la rama develop

Esto nos creara las ramas master y develop y nos colocara en la rama develop.

Inicializar una feature nueva

git flow feature start <nombreNuevaFeature>

Al realizar este comando realiza todas estas acciones por nosotros:

  • Crea una nueva rama a partir de develop
  • Nos pasa a la rama creada

Ahora trabajamos en nuestra rama, realizamos nuestros commits….

Terminar feature

git flow feature finish <nombreFeatureAFinalizar>

Al realizar este comando realiza todas estas acciones por nosotros:

  • Se mergea la rama feature con develop
  • Borra la rama feature
  • Nos pasa a la rama develop

 

 

 

Links:

CategoríasGit