Flujo básico de una feature usando Git Flow (con ejemplos vanilla)
Gitflow puede utilizarse en proyectos que tienen un ciclo de publicación programado, así como para la práctica recomendada de DevOps de entrega continua
Funcionamiento
Ramas principales y de desarrollo
En lugar de una única rama main, este flujo de trabajo utiliza dos ramas para registrar el historial del proyecto. La rama main o principal almacena el historial de publicación oficial y la rama develop o de desarrollo sirve como rama de integración para las funciones. Asimismo, conviene etiquetar todas las confirmaciones de la rama main con un número de versión.
En el siguiente ejemplo se trabaja en una nueva funcionalidad para listar logs de usuarios
Iniciar Git Flow (si no está inicializado)
# con la extension git flow
git flow init
# sin la extension
git branch develop
git push -u origin develop
git checkout developCrear una rama de feature desde develop
# con la extension git flow
git flow feature start logs-de-usuario
# sin la extension
git checkout develop # Cambia a la rama develop
git pull origin develop # Sincroniza con el remoto
git checkout -b feature/logs-de-usuario # Crea la rama de feature- Esto crea una rama
feature/logs-de-usuariobasada endevelop.
En la mayoría de los escenarios de equipo, especialmente con metodologías como Git Flow o Feature Branch Workflow, la práctica estándar es empujar las ramas de feature al repositorio remoto.
git push -u origin feature/nombre-de-la-feature (¡Aquí la diferencia!) - Subes tu rama de feature al remoto. Puedes hacer esto varias veces mientras trabajas para tener respaldo y permitir la visibilidad.
Ejemplo visual de las ramas
Antes de git flow init:
mainDespués de git flow init:
main
developY luego al crear features:
main
develop
→ feature/logs-de-usuarioTrabajar en la feature (ejemplo de comandos durante el desarrollo)
# Hacer cambios en los archivos...
git add src/utils/userLogs.js src/components/UserLogs.astro
git commit -m "Agrega servicio de logs de usuario"
git add tests/userLogs.test.js
git commit -m "Añade tests para los logs de usuario"
Sincronizar con develop (opcional, si hay cambios nuevos en develop)
git checkout develop
git pull origin develop
git checkout feature/logs-de-usuario
git merge develop
# Resuelve conflictos si los hayFinalizar la feature (merge a develop)
# con la extension git flow
git flow feature finish logs-de-usuario
# sin la extension
git checkout develop # Vuelve a develop
git merge --no-ff feature/logs-de-usuario # Fusiona la feature
git branch -d feature/logs-de-usuario # Borra la rama local
git push origin develop # Sube los cambios- Este comando:
Publicar cambios en el repositorio remoto
git push origin developDiagrama visual del flujo
master
↑
release/* (opcional)
↑
develop ← feature/logs-de-usuario (mergeado)Representación del flujo final de feature/log_de_usuarios

Comandos adicionales útiles
Si necesitas subir la rama de feature al repositorio remoto (para colaboración):
git flow feature publish logs-de-usuario
# O manualmente:
git push origin feature/logs-de-usuario
Si hay conflictos al finalizar la feature:
# Resuelve conflictos manualmente, luego:
git add .
git commit -m "Resuelve conflictos en logs-de-usuario"
git flow feature finish logs-de-usuario
Para cancelar una feature (en caso de abandonar el desarrollo):
git flow feature delete logs-de-usuarioNotas importantes
- Convención de nombres: Las ramas de feature siguen el formato
feature/nombre-de-feature(en kebab-case). - Recomendación: Usa
git flow feature finishen lugar de hacer merge manual para mantener la consistencia del flujo. - Herramientas gráficas: Si prefieres una interfaz, herramientas como Sourcetree o GitKraken soportan Git Flow. De cualquier forma en el enlace siguiente se encuentran muchos mas clientes con interfaz grafica directamente en el sitio oficial de Git:Git - GUI Clients
Acción | Con | Con Git puro |
|---|---|---|
Iniciar feature |
|
|
Publicar feature |
|
|
Finalizar feature |
|
|
Comentarios
Sé la primera persona en comentar.