🚀 Guía de Git: Nomenclatura de Ramas, Commits Semánticos y Flujo de Trabajo Diario
Esta guía recopila las mejores prácticas para estructurar tus commits y ramas en Git, utilizando estándares como Conventional Commits y flujos de trabajo organizados para facilitar la colaboración y el mantenimiento del código en tus proyectos.
🌿 1. Nomenclatura de Ramas (Git Branching)
Estructurar el nombre de tus ramas ayuda a identificar inmediatamente su propósito. Se recomienda utilizar prefijos seguidos de una descripción corta usando guiones (kebab-case).
Tipos de Ramas Comunes
| Prefijo | Propósito / Uso | Ejemplos |
|---|---|---|
feature/ |
Desarrollo de una nueva funcionalidad. | feature/create-league, feature/player-image-upload |
fix/ |
Corrección de un error o bug en la aplicación. | fix/league-null-id, fix/login-auth-error |
refactor/ |
Cambios en el código que no añaden funcionalidades ni arreglan bugs. | refactor/prisma-schema, refactor/clean-auth-logic |
chore/ |
Tareas de mantenimiento, configuración de dependencias o scripts. | chore/docker-compose, chore/setup-eslint |
docs/ |
Cambios únicamente en la documentación (ej. README). | docs/readme-api, docs/setup-instructions |
test/ |
Añadir o modificar pruebas unitarias o de integración. | test/auth-service, test/components-render |
💬 2. Commits Semánticos (Conventional Commits)
Un buen mensaje de commit debe explicar qué se hizo y por qué, no cómo (eso lo muestra el código). El estándar de commits semánticos sigue la estructura:
<tipo>: <descripción en minúscula y presente imperativo>
Tipos de Commit
feat: Una nueva funcionalidad para el usuario (se alinea confeature/).fix: Solución de un error (se alinea confix/).refactor: Reorganización del código sin cambiar su comportamiento externo.docs: Cambios en la documentación.style: Cambios que no afectan el significado del código (formato, espacios en blanco, comillas, punto y coma, linting).test: Añadir pruebas faltantes o corregir pruebas existentes.chore: Cambios en el proceso de construcción, herramientas auxiliares y librerías/dependencias (ej. actualizar webpack, npm packages, etc.).
🔄 3. Flujo de Trabajo Diario (Git Workflow)
A continuación, se describen los flujos de trabajo comunes para el día a día.
Flujo A: Creación de una Nueva Funcionalidad o Tarea
Cuando vas a iniciar una nueva tarea, es fundamental partir de la versión más reciente del código estable (main).
- Asegurar que estás en la rama principal y actualizada:
git checkout main git pull origin main - Crear y cambiar a tu nueva rama de trabajo:
git checkout -b feature/nueva-funcionalidad - Trabajar en los archivos del proyecto...
- Verificar los archivos modificados:
git status - Preparar y confirmar tus cambios (Crear el Commit):
git add . git commit -m "feat: implementar el buscador interactivo de guías" - Subir tu rama al repositorio remoto (GitHub) por primera vez:
El parámetro
-u(o--set-upstream) asocia tu rama local con la remota permanentemente.git push -u origin feature/nueva-funcionalidad
Flujo B: Tareas de Mantenimiento o Documentación
El mismo flujo aplica para configuraciones, setup de integraciones o cambios en el README.
- Actualizar la rama principal y crear la rama correspondiente:
git checkout main git pull origin main git checkout -b chore/github-standards - Agregar y editar archivos:
Puedes especificar qué archivos deseas agregar en lugar de usar
git add .para evitar subir basura.git add CONTRIBUTING.md .github/ - Commit y Push:
git commit -m "docs: add contributing guide and PR template" git push -u origin chore/github-standards
Flujo C: Realizar Correcciones en una Rama Existente
Si te hacen observaciones en un Pull Request o encuentras un bug mientras trabajas en tu rama activa, no necesitas crear otra rama nueva; simplemente corrige los cambios sobre la misma rama.
- Asegurarte de estar en la rama en la que estás trabajando:
git checkout chore/github-standards - Realizar las correcciones necesarias en tu editor.
- Agregar los archivos modificados:
git add . - Hacer un commit descriptivo de la corrección:
git commit -m "fix: fix CI pipeline validation rule" - Subir los cambios:
Dado que la rama ya está asociada al servidor remoto (upstream), solo necesitas escribir
git push.git push
🛠️ 4. Comandos de Git Esenciales para el Día a Día
Aquí tienes un resumen de los comandos que más utilizarás:
| Comando | Descripción |
|---|---|
git status |
Muestra el estado del directorio de trabajo y del área de preparación (staging). |
git diff |
Muestra las diferencias de líneas entre el código modificado y el último commit. |
git log --oneline -n 10 |
Muestra los últimos 10 commits del proyecto en una sola línea por commit. |
git checkout <nombre-rama> |
Cambia a una rama existente. |
git checkout -b <nombre-rama> |
Crea una nueva rama y cambia a ella inmediatamente. |
git restore <archivo> |
Desecha los cambios locales no confirmados de un archivo específico. |
git reset HEAD~1 |
Deshace el último commit local manteniendo tus cambios como archivos modificados listos para volver a guardar. |
git stash |
Guarda temporalmente tus cambios locales no confirmados para limpiar tu directorio y poder cambiar de rama sin perder nada. |
git stash pop |
Recupera y aplica tus cambios guardados temporalmente en el último stash. |