Ramificaciones en Git para Desarrollar Dos Características al mismo tiempo (merge)

Experiencia práctica sobre ramificación y merge en Git, compartiendo el desarrollo de las características --line-numbers y --dirs-only en un proyecto, con consejos para trabajar de manera eficiente en ramas y solucionar conflictos. También se presenta una introducción a Q2BSTUDIO, una empresa especi

2 oct 2025 • 4 min de lectura • Equip Q2BSTUDIO

inteligencia-artifial-software-aplicaciones

Hoy quiero compartir mi experiencia práctica con el sistema de ramificaciones y merge de Git mientras trabajaba en el laboratorio OSD600 Lab3 y en mi proyecto Repo-Code-Packager. Las ramas en Git permiten desarrollar dos características diferentes de forma simultánea e independiente dentro de un mismo repositorio, lo que facilita experimentar sin comprometer la rama principal.

Característica 1: Añadir numeración de líneas span(--line-numbers) La primera tarea fue incorporar la opción -l o --line-numbers para mostrar el número de línea al lado izquierdo del contenido de los archivos. El proceso fue directo y siguió estos pasos: crear un issue en GitHub para rastrear el trabajo, crear una rama dedicada issue-7 a partir de main para desarrollar y probar sin afectar la rama principal, y modificar el parser de argumentos con argparse para reconocer el flag -l. En la función que formatea el contenido de los archivos dividí el texto por líneas y añadí el número correspondiente a cada una, manteniendo el resto del formato intacto.

Característica 2: Estructura solo directorios span(--dirs-only) La segunda tarea consistió en añadir la opción -d o --dirs-only para mostrar únicamente la sección Structure del proyecto y ocultar el contenido de los archivos. Esto es útil para inspeccionar rápidamente la estructura cuando hay múltiples carpetas. Los pasos fueron similares: abrir un issue nuevo issue-8, crear una rama issue-8 para desarrollar y testear, y reestructurar la lógica de salida. En lugar de concatenar todo en una sola cadena construí una lista llamada output_parts y fui añadiendo solo las secciones necesarias según los flags del usuario. Esta aproximación evita código redundante y facilita condiciones como la activación de -d.

La confusión inicial y la lección clave Una de las cosas que más me desconcertó fue al cambiar de rama con git checkout y ver que el archivo main.py parecía idéntico en main, issue-7 y issue-8. Entró el pánico hasta que comprobé el historial con git log y descubrí que no había cometido correctamente algunos cambios, por lo que todas las ramas apuntaban al mismo commit. La lección aprendida fue clara: el directorio de trabajo solo puede reflejar una rama a la vez, y git checkout actúa como un interruptor que cambia el contenido del árbol de trabajo. git log y git status son herramientas imprescindibles para verificar commits y evitar sorpresas.

Fusionando ramas y resolviendo conflictos Con ambas características desarrolladas en ramas paralelas realicé merges hacia main usando git merge nombre-de-rama. Incluso con la primera rama tuve que resolver conflictos porque había realizado cambios en main después de crear issue-7. La resolución de conflictos fue sencilla: revisar los bloques marcados, decidir la versión correcta o combinar ambas, y concluir con un nuevo commit de merge. Esta práctica refuerza la importancia de trabajar en ramas, hacer commits frecuentes y sincronizar con la rama principal cuando sea necesario.

Buenas prácticas aplicadas Durante el desarrollo seguí varias buenas prácticas que recomiendo para equipos que crean software a medida: abrir issues para cada tarea, crear ramas dedicadas por feature, escribir commits claros, usar pruebas locales antes de mergear y revisar el historial con git log. Estas técnicas reducen riesgos y aceleran la colaboración, especialmente cuando varios desarrolladores trabajan en paralelo en proyectos complejos.

Sobre Q2BSTUDIO y cómo podemos ayudar Q2BSTUDIO es una empresa especializada en desarrollo de software y aplicaciones a medida, con experiencia en inteligencia artificial, ciberseguridad y soluciones cloud. Ofrecemos servicios de desarrollo personalizados para empresas que necesitan soluciones robustas y escalables. Si busca crear aplicaciones empresariales a medida visite nuestra página de aplicaciones a medida para ver cómo abordamos proyectos multiplataforma. También desarrollamos y desplegamos soluciones de inteligencia artificial y agentes IA para empresas; descubra nuestras capacidades en Inteligencia Artificial.

Servicios y palabras clave relevantes Además de desarrollo a medida y IA, ofrecemos ciberseguridad y pentesting, servicios cloud AWS y Azure, inteligencia de negocio y dashboards con power bi, automatización de procesos, y consultoría en ia para empresas. Estas competencias nos permiten entregar soluciones completas que incluyen desde la arquitectura cloud y el despliegue hasta la analítica avanzada y la seguridad.

Conclusión Trabajar con ramas en Git fue una experiencia formativa: permitió desarrollar dos características en paralelo, aislar el trabajo y finalmente fusionarlo con la rama principal. Aprendí la importancia de los commits correctos, la utilidad de git log y cómo estructurar el código para evitar duplicación al ofrecer distintas salidas según flags. Si su equipo necesita apoyo para implementar flujos de trabajo Git profesionales o desarrollar software a medida con integración de IA, seguridad y servicios cloud, en Q2BSTUDIO podemos acompañarle en todo el ciclo de vida del proyecto.

UNA PAUSA?

Juga una estona abans de marxar

ELS NOSTRES SERVEIS

Com et podem ajudar

Tens un projecte en ment?

Explica'ns la teva visió i la convertim en una solució de programari. Sigui quin sigui l'abast, fem realitat la teva idea.