Comandos de Git Flow

Instalación

Comando Sistema Operativo
yay -S gitflow-avh Archlinux o Manjaro
sudo apt-get install git-flow Ubunto o Debian
sudo dnf install gitflow Fedora
brew install git-flow Mac OS X

Otros ejemplos de Instalación.

Inicializar Git Flow

$ git flow init [-fd]

Inicializar un repositorio de git existente para usar git flow.

  • -d Usar nombres de ramas predeterminados
  • -f Forzar

Trabajar una funcionalidad (feature)

$ git flow feature [list] [-v]

Listar las funcionalidades existentes.

  • -v Salida (más) detallada
$ git flow feature start [-F] <name> [<base>]

Empezar a desarrollar una nueva funcionalidad llamada name. Crea una nueva rama basada en develop, opcionalmente se puede crear basada en base.

  • -F fetch desde $ORIGIN antes de realizar la operación localmente
$ git flow feature finish [-rFkDS] <name|nameprefix>

Finalizar el desarrollo de la funcionalidad name, la rama name se fusiona en develop, se elimina la rama name y cambia hacia la rama develop.

  • -r rebase en lugar de merge
  • -F fetch desde $ORIGIN antes de finalizar
  • -k Mantener la rama name después de finalizar
  • -D Forzar la eliminación de la rama después de finalizar
  • -S Realizar squash en el merge
$ git flow feature publish <name>

Publicar la funcionalidad name en el $ORIGIN para que otros también puedan trabajar en ella.

$ git flow feature pull <remote> [<name>]

Obtener la funcionalidad name publicada en remote.

$ git flow feature track <name>

Seguir la funcionalidad name desde $ORIGIN.

$ git flow feature diff [<name|nameprefix>]

Mostrar todos los cambios en name que no están en develop.

$ git flow feature rebase [-i] [<name|nameprefix>]

Realizar rebase de name en develop.

  • -i Realizar un rebase interactivo
$ git flow feature checkout [<name|nameprefix>]

Cambiar a la rama name.

Hacer un lanzamiento (release)

$ git flow release [list] [-v]

Listar los lanzamientos existentes.

  • -v Salida (más) detallada
$ git flow release start [-F] <version>

Iniciar una nueva rama de lanzamiento llamada version. Crea una nueva rama basada en develop.

  • -F fetch desde $ORIGIN antes de realizar la operación localmente
$ git flow release publish <name>

Publicar el lanzamiento name en el $ORIGIN para que otros puedan verla.

$ git flow release finish [-Fsumpkn] <version>

Terminar el desarrollo del lanzamiento version, la rama version se fusiona en master, se crea un tag en master llamado version, el master se fusiona en develop y se elimina la rama version, finalmente cambia hacia la rama develop.

  • -F fetch desde $ORIGIN antes de finalizar
  • -s Firmar la etiqueta version criptográficamente
  • -u Usar la clave GPG dada para la firma digital (implica -s)
  • -m Usar el mensaje de etiqueta dado
  • -p push a $ORIGIN después de finalizar
  • -k Mantener la rama version después de finalizar
  • -n No etiquetar este lanzamiento
$ git flow release track <name>

Seguir el lanzamiento name desde $ORIGIN.

Corregir incidencias (hotfix)

$ git flow hotfix [list] [-v]

Listar las incidencias existentes.

  • -v Salida (más) detallada
$ git flow hotfix start [-F] <version> [<base>]

Iniciar una nueva rama de incidencia llamada version. Crea una nueva rama basada en master, opcionalmente se puede crear basada en base.

  • -F fetch desde $ORIGIN antes de realizar la operación localmente
$ git flow hotfix finish [-Fsumpkn] <version>

Terminar la incidencia version, la rama version se fusiona en develop y master, se crea un tag en master llamado version.

  • -F fetch desde $ORIGIN antes de finalizar
  • -s Firmar la etiqueta version criptográficamente
  • -u Usar la clave GPG dada para la firma digital (implica -s)
  • -m Usar el mensaje de etiqueta dado
  • -p push a $ORIGIN después de finalizar
  • -k Mantener la rama version después de finalizar
  • -n No etiquetar este lanzamiento

Resumen de Comandos

Comandos