Guías para las tareas más comunes en git-flow.
- Git Flow en un nuevo repositorio
- Git Flow en un repositorio ya existente
- Git Flow en un repositorio recién clonado
- Git Flow en un repositorio recién clonado y con git flow ya trabajado
- Realizar un release
- Realizar un hotfix
- Realizar un feature
## Git Flow en un nuevo repositorio
Para iniciar git flow en un nuevo repositorio seguimos los siguientes pasos:
Con la terminal en el directorio de nuestro repositorio.
- Iniciamos el repositorio de la manera habitual.
$ git init
- Una vez iniciado el repositorio, iniciamos git flow.
$ git flow init
- La terminal nos pedirá las configuraciones a utilizar (nombre del branch maestro, desarrollo, prefijo branch feature, etc.). La sugerencia aquí es dejar los valores por defecto, por lo que sólo será necesario presionar enter.
¡Listo! Ya tenemos nuestro repositorio con git flow.
Para iniciar git flow en un repositorio ya existen, es decir, con git init
ya ejecutado, seguimos los siguientes pasos:
Con la terminal en el directorio de nuestro repositorio.
- Ejecutamos el siguiente comando para inicializar git flow.
$ git flow init
- La terminal nos pedirá las configuraciones a utilizar (nombre del branch maestro, desarrollo, prefijo branch feautre, etc.). La sugerencia aquí es dejar los valores por defecto, por lo que sólo será necesario presionar enter.
¡Listo! Ya tenemos nuestro repositorio con git flow.
Para iniciar git flow en un repositorio recién clonado seguimos los siguientes pasos:
Con la terminal en el directorio de nuestro repositorio.
- Ejecutamos el siguiente comando para inicializar git flow.
$ git flow init
- La terminal nos pedirá las configuraciones a utilizar (nombre del branch maestro, desarrollo, prefijo branch feautre, etc.). La sugerencia aquí es dejar los valores por defecto, por lo que sólo será necesario presionar enter.
¡Listo! Ya tenemos nuestro repositorio con git flow.
Para iniciar git flow en un repositorio recién clocado y en el cual ya se había estado trabajando con git flow, seguimos los siguientes pasos:
Con la terminal en el directorio de nuestro repositorio.
- Ejecutamos el siguiente comando para consultar todas las ramas del repositorio (remotas y locales).
$ git branch -a
-
Buscamos la rama con el nombre que comienza con el prefijo remotes/origin/nombre-rama-develop y el nombre de la rama correspondiente a develop (en caso de usar los valores por defector en la configuración de git flow este nombre seria develop.
-
Copiamos todo el nombre remotes/origin/nombre-rama-develop y ejecutamos el comando.
$ git checkout remotes/origin/nombre-rama-develop
Este comando nos moverá a la referencia de la rama remota de desarrollo.
- Creamos una rama local con referencia a la rama de desarrollo del repositorio remoto.
$ git checkout -b develop
Este comando creara la rama local develop y nos moverás a ella.
- Ejecutamos el siguiente comando para inicializar git flow.
$ git flow init
- La terminal nos pedirá las configuraciones a utilizar (nombre del branch maestro, desarrollo, prefijo branch feautre, etc.). La sugerencia aquí es dejar los valores por defector, por lo que sólo será necesario presionar enter.
¡Listo! Ya tenemos nuestro repositorio con git flow.
Para realizar un release, seguimos los siguientes pasos:
Con la terminal en el directorio de nuestro repositorio y nuestra area de trabajo limpia.
- Nos movemos a la rama local develop
$ git checkout develop
- Bajamos los cambios del repositorio remoto de la rama develop
$ git pull origin develop
- Nos movemos a la rama local master
$ git checkout master
- Bajamos los cambios del repositorio remoto de la rama master
$ git pull origin master
- Bajamos los tags de la repositorio remoto de la rama master
$ git fetch --tags
- Consultamos los tags ya utilizados
$ git tag
- Iniciamos el release
$ git flow release start *tag-de-versión-siguiente*
-
De ser necesario realizamos los cambios para el release
-
Cerramos el release
$ git flow release finish *tag-de-versión-siguiente*
- Nos movemos a la rama local master
$ git checkout master
- Subimos los cambios y tags a la rama remota master
$ git push origin master --tags
- Nos movemos a la rama local develop
$ git checkout develop
- Subimos los cambios a la rama remota develop
$ git push origin develop
¡Listo! Hemos completado el Release.
Para realizar un hotfix, seguimos los siguientes pasos:
Con la terminal, en el directorio de nuestro repositorio y nuestra area de trabajo limpia.
- Nos movemos a la rama local develop
$ git checkout develop
- Bajamos los cambios del repositorio remoto de la rama develop
$ git pull origin develop
- Nos movemos a la rama local master
$ git checkout master
- Bajamos los cambios del repositorio remoto de la rama master
$ git pull origin master
- Bajamos los tags de la repositorio remoto de la rama master
$ git fetch --tags
- Consultamos los tags ya utilizados
$ git tag
- Iniciamos el hotfix
$ git flow hotfix start *tag-de-versión-siguiente*
-
Realizamos los cambios para solucionar el problema
-
Hacemos commit de nuestros cambios
$ git add .
$ git commit
- Cerramos el hotfix
$ git flow hotfix finish *tag-de-versión-siguiente*
- Nos movemos a la rama local master
$ git checkout master
- Subimos los cambios y tags a la rama remota master
$ git push origin master --tags
- Nos movemos a la rama local develop
$ git checkout develop
- Subimos los cambios a la rama remota develop
$ git push origin develop
¡Listo! Hemos completado el Hotfix.
Para realizar un feature seguimos los siguientes pasos:
Con la terminal en el directorio de nuestro repositorio y nuestra área de trabajo limpia.
- Nos movemos a la rama local develop (si no estamos en ella)
$ git checkout develop
- Bajamos los cambios del repositorio remoto de la rama develop
$ git pull origin develop
- Iniciamos el feature
$ git flow feature start *nombre-del-feature*
Recuerda que el nombre-del-feature puede ser el que nosotros elijamos.
-
Realizamos los cambios para nuestro feature
-
Hacemos commit de nuestros cambios
$ git add .
$ git commit
- Cerramos el feature
$ git flow feature finish *nombre-del-feature*
- Subimos al repositorio remoto en la rama develop
$ git push origin develop
¡Listo! Hemos competado el feature.