Esta guía está diseñada para ayudarte a gestionar las ramas en un proyecto de manera efectiva utilizando la metodología Git Flow. Incluye instrucciones detalladas para trabajar con las ramas principales (main
y develop
), así como las ramas específicas (feature
, release
y hotfix
).
main
: Contiene el código listo para producción. Solo se actualiza al realizar un merge desderelease
ohotfix
.develop
: Rama principal para el desarrollo. Sirve como base para las ramasfeature
yrelease
.
feature/*
: Utilizadas para desarrollar nuevas funcionalidades. Se crean a partir dedevelop
.release/*
: Usadas para preparar una versión lista para producción. Se crean a partir dedevelop
y se fusionan enmain
ydevelop
.hotfix/*
: Diseñadas para corregir errores críticos en producción. Se crean a partir demain
y se fusionan enmain
ydevelop
.
Antes de comenzar, asegúrate de que tu repositorio está correctamente configurado:
-
Crea las ramas principales:
git checkout -b main git push -u origin main git checkout -b develop git push -u origin develop
-
Configura el repositorio remoto:
git remote add upstream https://github.com/<usuario>/<repositorio>.git
-
Asegúrate de que
main
ydevelop
están sincronizadas correctamente:git fetch upstream git checkout main git pull upstream main git checkout develop git pull upstream develop
-
Crear una rama feature:
git checkout develop git pull origin develop git checkout -b feature/<nombre-de-la-funcionalidad>
-
Hacer cambios en la rama:
Realiza los cambios necesarios en el código y haz commits:
git add . git commit -m "Implementar nueva funcionalidad"
-
Fusionar la rama feature en develop:
Una vez completada la funcionalidad:
git checkout develop git pull origin develop git merge feature/<nombre-de-la-funcionalidad>
-
Eliminar la rama feature:
git branch -d feature/<nombre-de-la-funcionalidad> git push origin --delete feature/<nombre-de-la-funcionalidad>
-
Crear una rama release:
git checkout develop git pull origin develop git checkout -b release/<versión>
-
Realizar ajustes finales:
Realiza los últimos cambios necesarios, como actualizar el número de versión o la documentación:
git add . git commit -m "Actualizar versión a <versión>"
-
Fusionar en main y develop:
git checkout main git merge release/<versión> git push origin main git checkout develop git merge release/<versión> git push origin develop
-
Eliminar la rama release:
git branch -d release/<versión> git push origin --delete release/<versión>
-
Crear una rama hotfix:
git checkout main git pull origin main git checkout -b hotfix/<descripción>
-
Realizar los cambios:
Realiza los cambios necesarios para solucionar el problema:
git add . git commit -m "Hotfix: corregir <problema>"
-
Fusionar en main y develop:
git checkout main git merge hotfix/<descripción> git push origin main git checkout develop git merge hotfix/<descripción> git push origin develop
-
Eliminar la rama hotfix:
git branch -d hotfix/<descripción> git push origin --delete hotfix/<descripción>
-
Actualizar develop con cambios de main (por ejemplo, tras un hotfix):
git checkout develop git pull origin develop git merge main git push origin develop
-
Actualizar main con cambios de develop (por ejemplo, tras una release):
git checkout main git pull origin main git merge develop git push origin main
-
No trabajar directamente en
main
nidevelop
. Siempre utiliza ramas secundarias (feature
,release
,hotfix
). -
Mantén las ramas sincronizadas. Realiza merges regulares para evitar conflictos al final del desarrollo.
-
Escribe mensajes de commit claros y descriptivos.
-
Elimina ramas que ya no sean necesarias.
-
Actualiza tu rama local antes de comenzar a trabajar:
git pull origin develop
Acción | Comando |
---|---|
Crear una rama | git checkout -b <nombre-de-rama> |
Cambiar a otra rama | git checkout <nombre-de-rama> |
Fusionar ramas | git merge <nombre-de-rama> |
Eliminar una rama local | git branch -d <nombre-de-rama> |
Eliminar una rama remota | git push origin --delete <nombre-de-rama> |
Ver historial de commits | git log --oneline --graph |
Sincronizar con el remoto | git pull origin <nombre-de-rama> |
Subir cambios al remoto | git push origin <nombre-de-rama> |
Esta guía te proporcionará una base sólida para gestionar ramas en proyectos utilizando Git Flow. Si necesitas más detalles, consulta la documentación oficial de Git.