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.