🇯🇵 日本語 | 🇺🇸 English | 🇪🇸 Español | 🇵🇹 Português | 🇹🇭 ไทย | 🇨🇳 中文

Reglas básicas y convenciones de nomenclatura para la gestión de ramas con varias personas en GitHub

En esta serie de artículos, has aprendido desde los usos básicos de GitHub hasta cómo contribuir al desarrollo colaborativo utilizando `Fork` y `Pull Request`. ¡Ya no tienes por qué temer al desarrollo individual ni a la contribución a proyectos de código abierto!

En esta última entrega de la serie, nos centraremos en la "gestión de ramas" para facilitar el desarrollo en equipo. Cuando varias personas trabajan en el mismo repositorio, si no hay reglas, el caos puede sobrevenir en un instante. ¡Aprendamos las reglas básicas para la gestión de ramas y las convenciones de nomenclatura fáciles de entender para que todos miren en la misma dirección y desarrollen de manera eficiente, y aspiremos a ser maestros del desarrollo en equipo!


¿Por qué son necesarias las reglas de gestión de ramas?

¿Qué pasaría si no hubiera reglas para la creación de ramas en un equipo?

La persona A crearía `feature-A`, la persona B `fix-B`, y la persona C `sato-branch`. Cada uno empezaría a crear ramas con nombres arbitrarios. Así, nadie sabría para qué sirve cada rama. Como resultado, proliferarían las ramas innecesarias, los errores de fusión (merge) serían frecuentes y el desarrollo se sumiría en el caos.

Para prevenir este caos y avanzar en el desarrollo sin problemas, es indispensable contar con unas sencillas "reglas de gestión de ramas (estrategia de ramificación)" compartidas por el equipo. Existen estrategias de ramificación famosas como "Git-flow", pero para empezar, es más que suficiente con aprender los fundamentos de un "flujo de trabajo de ramas de funcionalidad" (feature branch workflow) más simple.


Tipos de ramas básicas y sus roles

En el desarrollo en equipo simple, se suelen utilizar principalmente dos tipos de ramas. Entendamos bien el papel de cada una.


Convenciones de nomenclatura fáciles de entender para las ramas

Para que cualquiera pueda entender las ramas de funcionalidad, es importante tener una convención de nomenclatura coherente. Generalmente, se utiliza el formato " `prefijo/descripcion-del-trabajo` ".

Tipos de prefijos y ejemplos concretos:

Si compartes estas reglas con tu equipo, cualquiera podrá saber para qué sirve una rama con solo ver su nombre.


¡En la práctica! El flujo básico del desarrollo en equipo

Ahora, veamos el flujo básico del desarrollo en equipo basado en estas reglas, junto con los comandos.

Paso 1: Obtén la última versión de la rama `main`

Antes de empezar a trabajar, asegúrate siempre de actualizar tu rama `main` local al estado más reciente del repositorio remoto. Primero, cambia a la rama `main`.

git checkout main

A continuación, trae la información más reciente del remoto a tu local.

git pull origin main

Paso 2: Crea una rama de funcionalidad para tu trabajo

Desde la rama `main` actualizada, crea una rama de trabajo para ti. Esta vez, vamos a crear una rama asumiendo que vamos a "añadir un formulario de contacto".

git checkout -b feature/add-contact-form

Paso 3: Realiza las modificaciones/desarrollo y haz commit

En la nueva rama que has creado, modifica y añade código a tu antojo. Cuando hayas completado una parte del trabajo con sentido, crea un commit.

git add .

git commit -m "Añadir estructura básica del formulario de contacto"

Paso 4: Haz push al repositorio remoto

Haz push de la rama de funcionalidad que has creado al repositorio remoto. Esta es la primera vez que tu trabajo será visible para los miembros de tu equipo.

git push origin feature/add-contact-form

Paso 5: Crea una Pull Request y recibe feedback

Una vez que hayas hecho push, crea una Pull Request en GitHub dirigida a la rama `main`. Pide a los miembros de tu equipo que revisen tu código y te den su feedback. (Consulta el artículo anterior para saber cómo crear una Pull Request).

Paso 6: Después de la fusión, elimina la rama innecesaria

Una vez que la Pull Request se haya fusionado con éxito, la rama de funcionalidad que usaste para ese trabajo ya no es necesaria. Para mantener el repositorio limpio, elimínala.

Primero, elimina la rama remota. Esto normalmente se hace simplemente pulsando el botón "Delete branch" que aparece en la página de la Pull Request de GitHub después de la fusión.

[Imagen: El botón "Delete branch" que se muestra después de una fusión.]

A continuación, elimina también la rama que queda en tu local. Primero, volvamos a la rama `main`.

git checkout main

Y luego, elimina la rama local que ya no necesitas.

git branch -d feature/add-contact-form

Con esto, se completa un ciclo. Cuando empieces un nuevo trabajo, repite desde el paso 1.

Conclusión: Unas reglas simples salvan al equipo

El secreto para tener éxito en el desarrollo con varias personas no es aprender reglas complejas, sino que todos sigan constantemente unas reglas simples. Con solo aplicar rigurosamente en el equipo las reglas básicas que hemos presentado, la eficiencia del desarrollo aumentará drásticamente y podréis evitar problemas innecesarios.

Con esta serie de introducción a GitHub, has aprendido desde la creación de una cuenta hasta el flujo básico de desarrollo colaborativo. Este es un gran paso adelante como creador web. Utilizando los conocimientos adquiridos aquí como base, te animamos a que utilices activamente Git y GitHub en tus proyectos reales. ¡Esperamos que tu vida como desarrollador sea más cómoda y creativa!