Skip to content

Latest commit

 

History

History
251 lines (173 loc) · 6.8 KB

manual_08.md

File metadata and controls

251 lines (173 loc) · 6.8 KB

Guía para la gestión de ramas en proyectos con Git Flow

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).


Índice


Conceptos Básicos

Ramas Principales

  • main: Contiene el código listo para producción. Solo se actualiza al realizar un merge desde release o hotfix.
  • develop: Rama principal para el desarrollo. Sirve como base para las ramas feature y release.

Ramas Secundarias

  • feature/*: Utilizadas para desarrollar nuevas funcionalidades. Se crean a partir de develop.
  • release/*: Usadas para preparar una versión lista para producción. Se crean a partir de develop y se fusionan en main y develop.
  • hotfix/*: Diseñadas para corregir errores críticos en producción. Se crean a partir de main y se fusionan en main y develop.

Configuración Inicial del Repositorio

Antes de comenzar, asegúrate de que tu repositorio está correctamente configurado:

  1. Crea las ramas principales:

    git checkout -b main
    git push -u origin main
    
    git checkout -b develop
    git push -u origin develop
  2. Configura el repositorio remoto:

    git remote add upstream https://github.com/<usuario>/<repositorio>.git
  3. Asegúrate de que main y develop están sincronizadas correctamente:

    git fetch upstream
    git checkout main
    git pull upstream main
    
    git checkout develop
    git pull upstream develop

Flujo de Trabajo con Git Flow

Trabajar con Ramas Feature

  1. Crear una rama feature:

    git checkout develop
    git pull origin develop
    git checkout -b feature/<nombre-de-la-funcionalidad>
  2. Hacer cambios en la rama:

    Realiza los cambios necesarios en el código y haz commits:

    git add .
    git commit -m "Implementar nueva funcionalidad"
  3. 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>
  4. Eliminar la rama feature:

    git branch -d feature/<nombre-de-la-funcionalidad>
    git push origin --delete feature/<nombre-de-la-funcionalidad>

Preparar una Release

  1. Crear una rama release:

    git checkout develop
    git pull origin develop
    git checkout -b release/<versión>
  2. 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>"
  3. 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
  4. Eliminar la rama release:

    git branch -d release/<versión>
    git push origin --delete release/<versión>

Aplicar un Hotfix

  1. Crear una rama hotfix:

    git checkout main
    git pull origin main
    git checkout -b hotfix/<descripción>
  2. Realizar los cambios:

    Realiza los cambios necesarios para solucionar el problema:

    git add .
    git commit -m "Hotfix: corregir <problema>"
  3. 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
  4. Eliminar la rama hotfix:

    git branch -d hotfix/<descripción>
    git push origin --delete hotfix/<descripción>

Sincronización entre Main y Develop

  1. 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
  2. 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

Buenas Prácticas

  1. No trabajar directamente en main ni develop. Siempre utiliza ramas secundarias (feature, release, hotfix).

  2. Mantén las ramas sincronizadas. Realiza merges regulares para evitar conflictos al final del desarrollo.

  3. Escribe mensajes de commit claros y descriptivos.

  4. Elimina ramas que ya no sean necesarias.

  5. Actualiza tu rama local antes de comenzar a trabajar:

    git pull origin develop

Comandos Esenciales

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.