Git ofrece estrategias de bifurcación flexibles, pero ¿qué significa? En palabras simples, una estrategia de ramificación es un conjunto de reglas, una convención que ayuda a los equipos y desarrolladores:pueden seguir estas reglas y convenciones para crear una nueva rama, su flujo, etc.
No utilizar las convenciones de nomenclatura adecuadas genera confusión y complica al equipo de mantenimiento del código. No podemos ignorar las mejores prácticas de Git en las convenciones de nombres de bifurcación.
Las estrategias de ramificación de Git permiten la separación del trabajo. En términos generales, podemos dividir las ramas de Git en dos categorías:ramas regulares y temporales.
Sucursales regulares de Git
Estas ramas estarán disponibles en su repositorio de forma permanente. Su convención de nomenclatura es simple y directa.
- Desarrollo (dev ) es la principal rama de desarrollo. La idea de la rama de desarrollo es realizar cambios en ella y restringir que los desarrolladores realicen cambios directamente en la rama maestra. Los cambios en la rama de desarrollo se revisan y, después de las pruebas, se fusionan con la rama maestra.
- Maestro (maestro ) es la rama predeterminada disponible en el repositorio de Git. Debe ser estable todo el tiempo y no permitirá ningún registro directo. Solo puede fusionarlo después de la revisión del código. Todos los miembros del equipo son responsables de mantener el maestro estable y actualizado.
- Control de calidad (Control de calidad ), o rama de prueba, contiene todo el código para las pruebas de control de calidad y automatización de todos los cambios implementados. Antes de que cualquier cambio pase al entorno de producción, debe someterse a pruebas de control de calidad para obtener una base de código estable.
Ramas temporales de Git
Como su nombre lo indica, estas son las ramas que se pueden crear y eliminar cuando sea necesario. Pueden ser los siguientes:
- Corrección de errores
- Corrección en caliente
- Rasgos destacados
- Ramas Experimentales
- Sucursales WIP
Hay muchos formatos y convenciones de nomenclatura recomendados por expertos para sucursales temporales.
Aquí hay un flujo de trabajo simple de las ramas de Git.
Convención de nomenclatura de ramificación de Git
En este artículo, revisaré y compartiré las siete mejores convenciones de nomenclatura que usé personalmente en el pasado para garantizar su eficiencia.
1. Comience el nombre de la rama con una palabra de grupo
Es una de las mejores prácticas. La palabra del grupo puede ser cualquier cosa que coincida con su flujo de trabajo.
Me gustan las palabras cortas como las siguientes:
Error – El error que debe corregirse pronto
WIP – El trabajo está en progreso y soy consciente de que no terminará pronto
Al mirar el nombre de la rama, puede comprender de qué se trata esta rama de Git y su propósito.
Echa un vistazo a los siguientes ejemplos:
- bug-logo-alignment-issue:el desarrollador está tratando de solucionar el problema de alineación del logotipo;
- wip-ioc-container-added:la rama se relaciona con la tarea de agregar un contenedor IoC en curso.
2. Usar identificación única en los nombres de las sucursales
Puede usar la identificación del rastreador de problemas en el nombre de su sucursal. Prefiero este método cuando trabajo para corregir algunos errores. Por ejemplo:
wip-8712-añadir-módulo de prueba
El nombre muestra que la rama se aplica a la tarea de agregar un módulo de prueba, el Id. de seguimiento del problema es 8712 y el trabajo está en progreso.
Una ventaja más de utilizar un ID de seguimiento externo en el nombre de la sucursal es la posibilidad de realizar un seguimiento del progreso desde un sistema externo.
3. Usar guión o barra oblicua como separadores
Muchos desarrolladores usan la barra oblicua como separador y muchos usan guiones. Cuál usar, depende de usted y de las preferencias de su equipo.
Mi opinión es que los guiones hacen que el nombre sea más cómodo de leer, por lo que es un separador adecuado en los nombres de las ramas. Puede utilizar barras, guiones y guiones bajos. El punto es ser consistente.
Hay dos ventajas principales de usar un separador en el nombre de la rama:
- Aumenta la legibilidad y ayuda a evitar confusiones;
- Hace que sea más fácil de administrar, especialmente si se trata de muchas sucursales.
Ejemplo 1. Nombre de la rama Git sin ningún separador:
actualización de característicasjqueryversionmódulo de inicio de sesión
Ejemplo 2. Al agregar un separador (en este caso, es un guión bajo), hace legible el nombre de la rama de Git:
feature_upgrade_jquery_version_login_module
4. Rama de Git con nombre de autor
Muchas empresas prefieren agregar los nombres de los autores en los nombres de las sucursales según el siguiente formato:
<author>_<branch-type>_<branch-name>
Por ejemplo, rajeev.bera_feature_new-experimental-changes
Este método permite realizar un seguimiento sencillo del trabajo y el progreso de diferentes desarrolladores con sistemas adicionales.
5. Evite usar solo números
Algunos desarrolladores solo usan el Id. del problema en el nombre de la rama, lo que no ayuda en el progreso del trabajo.
Por ejemplo, hay un nombre de sucursal 9912:¿qué debería decirnos este número mágico? Solo significa más confusión y riesgo de errores, especialmente durante la fusión con otras ramas de git.
6. Evite usar todas las convenciones de nomenclatura simultáneamente
Mezclar y combinar todas las convenciones de nomenclatura de ramas de Git no es la mejor práctica. Solo agrega confusión y complica los procesos generales.
Un equipo debe decidir las convenciones de nomenclatura que se usarán en el trabajo una vez y apegarse a ellas. La consistencia es lo más importante.
7. Evite nombres descriptivos largos para ramas de larga duración
La cualidad esencial del nombre de una sucursal es que debe ser preciso e informativo. Echemos un vistazo a algunos ejemplos de nuevo:
wip_login_module_que_se_utilizará_en_el_sitio_web_público
wip_login_module_que_se_utilizará_en_el_sitio_web_interno
Allí, los nombres de las sucursales son largos y detallados. No es necesario. En su lugar, puede utilizar la siguiente variante:
wip_feature_login_module
Este nombre es corto, pero explica el propósito de esta rama.
Conclusión
El modelo de bifurcación de Git es poderoso, pero necesita administrar las bifurcaciones de manera correcta y efectiva. Uno de los factores necesarios es seguir las mismas convenciones por parte de todos los equipos, en particular, las convenciones de nomenclatura para el repositorio local.
Para asegurarse de que su equipo esté utilizando las convenciones acordadas, haga cumplir los estándares. Una de las formas más sencillas es usar ganchos de Git, como el gancho de confirmación previa. Espero que le dé una idea sobre los modelos de ramificación de Git y su convención de nomenclatura.