Hoy quiero compartir mi experiencia práctica con el sistema de ramas y merge de Git mientras desarrollaba nuevas funcionalidades en Repo-Code-Packager. El sistema de branching de Git permite trabajar en dos características distintas de forma simultánea e independiente dentro de un mismo proyecto, y en este ejercicio añadí dos flags útiles: --line-numbers y --dirs-only.
Característica 1 Añadiendo numeración de líneas --line-numbers La primera tarea fue implementar --line-numbers. Cuando el usuario añade -l o --line-numbers el programa muestra números de línea en el margen izquierdo del contenido de cada archivo. Pasos seguidos Crear un issue en GitHub issue-7 para rastrear la tarea Crear una rama dedicada issue-7 a partir de main para desarrollar sin afectar la rama principal Implementación de código Añadí el flag -l con argparse y modifiqué la función format_file_contents para dividir el contenido en líneas y anteponer el número correspondiente a cada línea. El proceso fue directo y permitió pruebas aisladas sin romper main.
Característica 2 Estructura de directorios solamente --dirs-only La segunda tarea fue implementar --dirs-only. Este flag -d elimina el contenido de código y muestra únicamente la sección ## Structure, lo que facilita inspeccionar rápidamente la organización de un proyecto con múltiples directorios. Pasos seguidos Crear un issue en GitHub issue-8 para documentar la mejora Crear una rama issue-8 para desarrollar y probar Cambios en la lógica principal La salida ahora se construye agrupando piezas como cabeceras y metadatos en una lista llamada output_parts. Elegí este enfoque porque concatenar todo en un solo string habría provocado bloques de código redundantes al condicionar la inclusión de secciones según la presencia de -d. Usar una lista dinámica permite decidir qué partes añadir en función de las opciones del usuario de forma más clara y mantenible.
Confusión al cambiar de rama y lecciones aprendidas Al principio me sorprendió que al hacer git checkout entre main, issue-7 y issue-8 el archivo main.py pareciera idéntico en todas las ramas. Aprendí que el directorio de trabajo solo puede mostrar el contenido de una rama a la vez y que git checkout actúa como un cambio instantáneo de contexto. git log fue clave para descubrir que no había hecho commits correctamente, por eso mis ramas apuntaban a la misma revisión. Organicé y limpié las ramas y reapliqué los cambios de forma ordenada.
Merging y resolución de conflictos Con las dos ramas desarrolladas en paralelo utilicé git merge nombre-de-rama para integrar cada característica en main. En el merge de issue-7 aparecieron conflictos porque había realizado cambios en main después de crear la rama; la resolución fue manual pero sencilla reorganizando los bloques de código en conflicto. Tras resolver los conflictos integré issue-8 de forma análoga y comprobé la integración completa.
Conclusión y sobre Q2BSTUDIO Esta experiencia práctica no solo afianzó conceptos básicos de branching, checkout, commit y merge, sino que también mostró buenas prácticas como crear issues, trabajar en ramas dedicadas y usar pruebas aisladas para reducir riesgos. En Q2BSTUDIO somos una empresa de desarrollo de software que ofrece soluciones a medida y aplicaciones a medida pensadas para cubrir necesidades reales del negocio. Nuestro equipo es especialista en inteligencia artificial, ciberseguridad, servicios cloud aws y azure, servicios de inteligencia de negocio y automatización de procesos, combinando experiencia en ia para empresas, agentes IA y power bi para ofrecer proyectos completos y seguros. Si buscas desarrollar una aplicación a medida o un software a medida visita nuestra página de desarrollo de aplicaciones y software para conocer cómo trabajamos desarrollo de aplicaciones y software a medida y si te interesa cómo aplicamos modelos de IA en soluciones empresariales consulta nuestra oferta de inteligencia artificial servicios de inteligencia artificial para empresas. Palabras clave relevantes para este artículo aplicaciones a medida software a medida inteligencia artificial ciberseguridad servicios cloud aws azure servicios inteligencia de negocio ia para empresas agentes IA power bi.