Guía
Git y control de versiones en equipo
Git resuelve el «quién cambió qué y cuándo». Lo que no resuelve solo es cómo se coordina un equipo alrededor de él: eso es una convención que hay que decidir y escribir.
Última actualización:
Casi ningún equipo tiene un problema con Git como herramienta. El problema es la ausencia de acuerdo: cada persona ramifica a su manera, las revisiones dependen de quién esté de guardia y nadie sabe con seguridad qué hay en producción. Esta guía recoge las decisiones que conviene cerrar y por qué.
Elegir un modelo de ramas
Hay dos familias razonables y una que casi siempre sobra. Trunk-based: todo el mundo integra en main varias veces al día, detrás de *feature flags* si hace falta, y se publica desde ahí. GitFlow: ramas de larga vida (develop, release/*, hotfix/*) con un ritual de promoción entre ellas.
- Equipo pequeño (2–8) que despliega a menudo: trunk-based con ramas de vida corta (horas o un par de días).
- Producto con versiones numeradas, varias soportadas a la vez, o certificaciones por versión: GitFlow o una variante.
- La rama que vive semanas sin integrarse no es una estrategia, es deuda: el *merge* será caro y arriesgado.
Pull requests que sirven para algo
Una *pull request* es una unidad de revisión, no un volcado de dos semanas de trabajo. Cuanto más pequeña, más honesta es la revisión: por encima de 400 líneas, quien revisa aprueba por cansancio.
- Un cambio por PR, con una descripción de qué problema resuelve y cómo probarlo.
- La rama parte de
mainactualizado y se reintegra en cuestión de días, no de semanas. - La CI (tests, lint, build) pasa antes de pedir revisión humana, no después.
- Al menos una aprobación de alguien que no sea el autor, y que esa persona pueda de verdad decir que no.
Revisión de código: qué mirar
La revisión no es un control de estilo —eso lo hace un *linter* automático—. Es una conversación sobre si el cambio es correcto, si es la solución más simple y si alguien más podrá mantenerlo. Comentar el nombre de una variable mientras se cuela un problema de concurrencia es perder el tiempo de todos.
Versionado y publicaciones
Etiqueta cada publicación (git tag) con versionado semántico y un registro de cambios generado a partir de los mensajes de *commit*. Así, cuando algo se rompe en producción, la pregunta «¿qué entró en esta versión?» se responde en diez segundos y no reconstruyendo el historial a mano.
Preguntas frecuentes
Lo que suelen preguntarnos
¿Trunk-based o GitFlow?
Trunk-based si despliegas a menudo y no mantienes varias versiones a la vez; GitFlow si tienes versiones numeradas soportadas en paralelo. En caso de duda, trunk-based con ramas de vida corta da menos problemas.
¿Es obligatorio revisar todas las pull requests?
Sí, aunque la revisión pueda ser rápida. El valor no es solo detectar errores: es que más de una persona conozca cada parte del código y que nadie sea punto único de fallo.
¿Cómo de grande puede ser una pull request?
Como norma, por debajo de 400 líneas de cambio real. Por encima, la calidad de la revisión cae en picado. Si un cambio es inevitablemente grande, divídelo en varios PR encadenados.
¿Hace falta un mensaje de commit con formato?
Ayuda mucho. Con Conventional Commits puedes generar el registro de cambios y decidir el número de versión de forma automática, y el historial se vuelve legible.
Servicios relacionados
Guías relacionadas
Seguir leyendo
Siguiente paso
Media hora bien invertida
Cuéntanos el problema en una llamada corta. Salimos con una primera orientación de por dónde iría y qué implicaría, sin compromiso y sin presentación comercial.