7 min lectura • Guide 610 of 877
Mejores Prácticas de Control de Versiones
El control de versiones es la base del desarrollo colaborativo—permite a los equipos trabajar en código simultáneamente, rastrear cambios y coordinar releases. GitScrum se integra directamente con GitHub y GitLab para conectar commits, branches y pull requests a tareas, creando trazabilidad completa desde la idea hasta el despliegue. La estrategia de branching y las prácticas de commit correctas marcan la diferencia entre colaboración fluida y caos de conflictos de merge.
Estrategias de Branching
| Estrategia | Complejidad | Mejor Para |
|---|---|---|
| Trunk-based | Baja | Deployment continuo |
| GitHub Flow | Baja | Releases regulares |
| GitFlow | Alta | Releases programados |
| Forking | Media | Open source |
Flujos de Branching
COMPARACIÓN DE ESTRATEGIAS DE BRANCHING:
┌─────────────────────────────────────────────────────────────┐
│ │
│ TRUNK-BASED DEVELOPMENT: │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ main ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ││
│ │ ╲ ╱ ╲ ╱ ╲ ╱ ││
│ │ ┊ ┊ ┊ ││
│ │ (branches pequeños, corta vida) ││
│ │ ││
│ │ Características: ││
│ │ ├── Commits pequeños y frecuentes a main ││
│ │ ├── Feature flags para trabajo incompleto ││
│ │ ├── Branches viven < 1 día ││
│ │ └── Integración continua esencial ││
│ │ ││
│ │ Mejor para: Equipos con deployment continuo ││
│ └─────────────────────────────────────────────────────────┘│
│ │
│ GITHUB FLOW: │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ main ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ││
│ │ ╲ ╱ ╲ ╱ ││
│ │ ╲────────╱ ╲────────╱ ││
│ │ feature-x feature-y ││
│ │ ││
│ │ Flujo de trabajo: ││
│ │ 1. Branch desde main ││
│ │ 2. Commit al branch ││
│ │ 3. Abrir PR cuando esté listo ││
│ │ 4. Revisar y discutir ││
│ │ 5. Merge a main ││
│ │ 6. Deploy desde main ││
│ │ ││
│ │ Mejor para: Ciclos de release simples y regulares ││
│ └─────────────────────────────────────────────────────────┘│
│ │
│ GITFLOW: │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ main ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ││
│ │ ╲ ╱ ││
│ │ develop ─────────●─────────●───────── ││
│ │ ╱ ╲ ╱ ││
│ │ feature-a feature-b ││
│ │ ╲ ││
│ │ release/1.0 ││
│ │ ╲ ││
│ │ hotfix ─────────────────────●──── ││
│ │ ││
│ │ Branches: ││
│ │ ├── main: Código de producción ││
│ │ ├── develop: Próximo release ││
│ │ ├── feature/*: Nuevas features ││
│ │ ├── release/*: Preparación de release ││
│ │ └── hotfix/*: Fixes urgentes de producción ││
│ │ ││
│ │ Mejor para: Releases programados con versiones ││
│ └─────────────────────────────────────────────────────────┘│
└─────────────────────────────────────────────────────────────┘
Prácticas de Commit
Mensajes de Commit Convencionales
FORMATO DE MENSAJES DE COMMIT:
┌─────────────────────────────────────────────────────────────┐
│ │
│ FORMATO: │
│ ───────── │
│ │
│ tipo(scope): asunto │
│ │
│ [cuerpo opcional] │
│ │
│ [footer opcional] │
│ │
│ ─────────────────────────────────────────────────────────── │
│ │
│ TIPOS: │
│ ─────── │
│ │
│ feat: Nueva feature │
│ fix: Corrección de bug │
│ docs: Solo documentación │
│ style: Formateo (no afecta lógica) │
│ refactor: Ni feature ni fix │
│ perf: Mejora de rendimiento │
│ test: Agregar tests │
│ chore: Mantenimiento │
│ │
│ ─────────────────────────────────────────────────────────── │
│ │
│ EJEMPLOS: │
│ ────────── │
│ │
│ feat(auth): agrega login con Google │
│ │
│ fix(dashboard): corrige cálculo de gráfica │
│ │
│ docs(api): actualiza ejemplos de endpoints │
│ │
│ refactor(usuarios): extrae lógica de validación │
│ │
│ feat(pagos): implementa checkout con Stripe │
│ │
│ Implementa integración completa de pagos: │
│ - Crea intento de pago │
│ - Procesa webhooks │
│ - Maneja errores │
│ │
│ Closes #123 │
└─────────────────────────────────────────────────────────────┘
Nombres de Branches
CONVENCIONES DE NOMBRES DE BRANCHES:
┌─────────────────────────────────────────────────────────────┐
│ │
│ FORMATO: │
│ ───────── │
│ │
│ tipo/id-descripcion-corta │
│ │
│ EJEMPLOS: │
│ ────────── │
│ │
│ feature/TASK-123-login-google │
│ fix/TASK-456-dashboard-crash │
│ docs/TASK-789-api-examples │
│ refactor/TASK-321-user-validation │
│ │
│ ─────────────────────────────────────────────────────────── │
│ │
│ BENEFICIOS: │
│ │
│ • GitScrum vincula automáticamente commits a tareas │
│ • Fácil identificar propósito del branch │
│ • Ordenados en listados │
│ • Trazabilidad de código a tarea │
│ │
│ ─────────────────────────────────────────────────────────── │
│ │
│ REGLAS: │
│ │
│ ✅ minúsculas │
│ ✅ guiones para separar palabras │
│ ✅ incluir ID de tarea │
│ ✅ descripción corta (3-5 palabras) │
│ │
│ ❌ espacios │
│ ❌ caracteres especiales │
│ ❌ nombres muy largos │
│ ❌ sin referencia a tarea │
└─────────────────────────────────────────────────────────────┘
Pull Requests
PRs Efectivos
MEJORES PRÁCTICAS DE PULL REQUEST:
┌─────────────────────────────────────────────────────────────┐
│ │
│ TAMAÑO: │
│ ──────── │
│ │
│ Ideal: < 400 líneas │
│ Aceptable: 400-800 líneas │
│ Grande: > 800 líneas (dividir si es posible) │
│ │
│ PRs pequeños = Reviews más rápidos │
│ │
│ ─────────────────────────────────────────────────────────── │
│ │
│ DESCRIPCIÓN DE PR: │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ ## Qué ││
│ │ Agrega login con Google para usuarios ││
│ │ ││
│ │ ## Por qué ││
│ │ Los usuarios pidieron alternativa a email/password ││
│ │ (47 solicitudes en feedback) ││
│ │ ││
│ │ ## Cómo ││
│ │ - Integra Google OAuth ││
│ │ - Crea o vincula cuenta existente ││
│ │ - Actualiza UI de login ││
│ │ ││
│ │ ## Cómo Probar ││
│ │ 1. Ir a /login ││
│ │ 2. Click en "Continuar con Google" ││
│ │ 3. Autorizar en popup ││
│ │ 4. Verificar redirect a dashboard ││
│ │ ││
│ │ ## Screenshots ││
│ │ [Captura del botón de Google] ││
│ │ ││
│ │ Closes #TASK-123 ││
│ └─────────────────────────────────────────────────────────┘│
│ │
│ ─────────────────────────────────────────────────────────── │
│ │
│ CHECKLIST: │
│ ☐ Tests agregados/actualizados │
│ ☐ Documentación actualizada │
│ ☐ Sin conflictos con main │
│ ☐ CI pasa │
│ ☐ Self-review realizado │
└─────────────────────────────────────────────────────────────┘