Acerca de git-flow
+ ++ git-flow es un conjunto de extensiones para git que proveen comandos de alto nivel para operar repositorios + basados en el modelo de ramificaciones de Vincent + Driessen. + más +
+★ ★ ★
+ +Esta hoja de referencia explica las operaciones básicas de git-flow, los comandos y sus efectos.
+ +★ ★ ★
+Consejos básicos
+-
+
- Git flow provee una excelente ayuda en la línea de comandos y e información. Lée con atención lo que sucede... +
- El cliente para OSX Sourcetree es una excelente GUI para git y tiene soporte para git-flow + +
- - Git-flow funciona basándose en fusiones de ramas (merge). No reorganiza (branch rebase) las ramas de características (feature branches). +
★ ★ ★
+Configuración
+-
+
- Un prerequisito es una instalación de git en funcionamiento. +
- Git flow funciona en OSX, Linux y Windows +
★ ★ ★
+OSX
++ $ brew install git-flow ++
Linux
++ $ apt-get install git-flow ++
Windows (Cygwin)
++ $ wget -q -O - --no-check-certificate + https://github.com/nvie/gitflow/raw/develop/contrib/gitflow-installer.sh | bash ++
Necesitarás wget y util-linux para instalar git-flow.
++ Para instrucciones de instalación detalladas, por favor, visite la wiki de git flow +
+
Introducción
+Git flow necesita ser inicializado para poder alterar la configuración del proyecto.
+★ ★ ★
+Inicialización
+ +Comience a usar git-flow inicializándolo desde dentro de un repositorio git existente:
++ git flow init ++
+ Deberá contestar algunas preguntas relacionadas con las convenciones de nombres para las ramas.
+ Se recomienda utilizar los valores predeterminados.
+
Características
+ +-
+
- Desarrollar características para futuras versiones +
- Es típico que sólo se use en los repositorios para desarrollo +
★ ★ ★
+ +Comenzar una nueva característica
+El desarrollo de nuevas características parte de la rama 'develop'.
+Comienze una nueva característica usando
++ git flow feature start MYFEATURE ++
Esta acción crea una nueva rama derivada de 'develop' y luego cambia el código a esta rama.
+ + +Terminar una característica
+ ++ Terminar el desarrollo de una característica. + Esta acción realiza lo siguiente: +
+-
+
- Fusiona MYFEATURE en 'develop' +
- Borra la rama MYFEATURE +
- Establece como versión de trabajo la rama 'develop' +
+ git flow feature finish MYFEATURE ++
Publicar una característica
+ +
+ ¿Estás trabajando colaborativamente?
+ Publica una característica a un servidor remoto para que así pueda ser vista por otros.
+
+ git flow feature publish MYFEATURE ++
Obteniendo características publicadas
+ ++ Descarga una característica publicada por otro y mantiene un seguimiento de sus cambios. +
+ ++ git flow feature pull MYFEATURE ++
Publica una versión
+ +-
+
- Prepara una versión para producción +
- Permite arreglos menores y la preparación de los metadatos para la publicación +
★ ★ ★
+Comienza una publicación
+ +Para comenzar una publicación, usa el comando git flow release. Creará
+ una rama de publicación derivada de la rama 'develop'. + ++ git flow release start RELEASE [BASE] ++
Opcionalmente, puede usar [BASE]
indicando el código sha-1 del cambio desde el cual comenzar la versión de
+ publicación. El cambio debe ser parte de la rama 'develop'.
★ ★ ★
+Es apropiado publicar remotamente la rama de publicación después de crearla para permitir que otros desarrolladores envíen cambios para esta versión. Hazlo de forma similar a publicar características:
++ git flow release publish RELEASE ++
(Puede establecer el seguimiento de los cambios de la publicación remota utilizando el comando git flow release track RELEASE
Concluir una publicación
+ +Dar cierre a una publicación es un gran paso. Realiza varias acciones:
+-
+
- Fusiona la rama de la publicación con la rama 'master' +
- Etiqueta el cambio con su nombre +
- Vuelve a fusionar la publicación con la rama 'develop' +
- Borra la rama de la publicación +
+ git flow release finish RELEASE ++
Revisiones
+ +-
+
- Las revisiones surgen de la necesidad de actuar inmediatamente cuando la versión ejecutándose en producción se encuentra en un estado que no deseamos + +
- Puede ramificarse desde la versión correspondiente etiquetada en la rama 'master' que corresponda a la versión en producción. +
★ ★ ★
+git flow hotfix start
+ +Como otros comandos de git flow, una revisión se abre con
++ git flow hotfix start VERSION [BASENAME] ++
El argumento de la versión determina el nombre de la revisión. Opcionalmente, puede agregar un nombre para la base desde la cual comenzar.
+Cierra una revisión
+ +Al cerrar una revisión, esta se fusiona en las ramas 'develop' y 'master'. Luego, el cambio en 'master' es etiquetado con el nombre de la revisión.
++ git flow hotfix finish VERSION ++
Comandos
+
Tareas pendientes
+★ ★ ★
+-
+
- Aquí no se han cubierto todos los comandos disponibles, sólo los más importantes +
- Aún puede usar todos los comandos de git normales tal y como los conoces, git-flow sólo es una herramienta más que puedes agregar a tu colección. + +
- La característica 'support' aún esta en fase beta y no se recomienda usarla +
- Si quiere proveer traducciones, serán bien recibidas. +
★ ★ ★
+