Probar gratis
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

EstrategiaComplejidadMejor Para
Trunk-basedBajaDeployment continuo
GitHub FlowBajaReleases regulares
GitFlowAltaReleases programados
ForkingMediaOpen 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                                   │
└─────────────────────────────────────────────────────────────┘

Soluciones Relacionadas