Este es la segunda entrega de Git for grad students, una guía práctica sobre ramas en Git traducida y adaptada al español para que aprendas a trabajar de forma segura y colaborativa con control de versiones
Qué problema resuelven las ramas en Git En un equipo a veces todos necesitan editar el mismo fichero compartido como si fuera una presentación en Google Slides. La solución de copiar el archivo para trabajar a salvo equivale en Git a crear una nueva rama. Cada persona trabaja en su copia aislada, pide revisión si hace falta y solo cuando todo está aprobado se integran los cambios en el archivo principal
Ventajas principales Crear una copia equivale a crear una rama nueva. Combinar varias copias en un único archivo es hacer merge de ramas. Si dos personas cambian exactamente la misma línea aparece un conflicto que hay que resolver manualmente
Flujo básico de trabajo Imagina que la rama principal se llama master y representa el fichero original compartido. Cuando te asignan una tarea sigue estos pasos crear una rama nueva trabajar en esa rama añadir los cambios al área de staging y crear un commit fusionar la rama de trabajo de nuevo en master
Comandos esenciales para el flujo local ver la rama actual usando git branch crear y cambiar a una rama nueva usando git checkout -b nombre_de_rama añadir ficheros al área de staging con git add nombre_fichero crear un commit con git commit -m mensaje volver a master con git checkout master fusionar una rama en la rama actual con git merge nombre_de_rama
Ejemplo práctico Paso a paso crea una rama llamada feature slash bye_there con git checkout -b feature/bye_there edita index.js para añadir una nueva línea con un console log por ejemplo console.log(bye there) luego git add index.js y git commit -m [feature] add bye there para integrar los cambios vuelve a master con git checkout master y fusiona con git merge feature/bye_there
Conflictos y cómo resolverlos Supongamos que dos compañeros trabajan simultáneamente y ambos crean ramas nuevas desde master. En una rama se añade main.js con console.log(1) y en la otra main.js con console.log(2). Si primero se fusiona la rama con console.log(1) y luego intentamos fusionar la otra rama Git detectará que la misma línea fue modificada de forma distinta y marcará un conflicto. Git inserta marcadores en el fichero para indicar la versión actual, la separación y la versión entrante. Para resolver el conflicto abre main.js, decide la versión correcta o combina ambas líneas dejando console.log(1) seguido de console.log(2), guarda el fichero, añade los cambios con git add main.js y finaliza la fusión con git commit -m Merge branch feature/print_2
Por qué ocurre el conflicto Resumen simple Git intenta aplicar cada conjunto de cambios sobre el estado actual. Si dos cambios afectan la misma ubicación en el mismo fichero Git no puede decidir automáticamente y pide intervención humana
Comandos aclarados de la parte 1 El comando git checkout master sirve para cambiar a la rama master y también para salir de un modo de vista anterior si estabas comprobando un commit antiguo usando su hash. El comando git switch -c nombre_de_rama crea y cambia a una rama nueva a partir del commit actual sin perder historial ni necesidad de resets destructivos
Ejercicio práctico de pensamiento Imagina que trabajas con un fichero Photoshop llamado cute-photo.psd y el cliente pide cambios continuos. Con Git podrías versionar cada paso creando ramas para cada propuesta por ejemplo feature slash dramatic_lighting feature slash liquidfy feature slash hair_pink feature slash hair_blue feature slash eyes_bigger y fusionar o revertir según la decisión del cliente. Para volver a un estado anterior puedes usar git reset --hard commit_hash aunque recuerda que reset es destructivo si no tienes copias remotas
Limitaciones en archivos binarios Aunque Git puede guardar versiones de archivos binarios como psd o ai el manejo de conflictos en binarios no es práctico porque no son humanos quienes puedan editar esos bytes de forma legible. Por eso en diseño colaborativo a menudo se usan otros flujos o sistemas especializados
Resumen rápido de comandos vistos git branch ver ramas git checkout nombre_de_rama cambiar de rama git checkout -b nombre_de_rama crear y cambiar a una rama git merge nombre_de_rama fusionar rama en la rama actual y consejos para resolver conflictos
Próximo capítulo En la parte 3 veremos cómo trabajar con repositorios remotos como GitHub o GitLab usando git push git pull git clone y cómo colaborar en equipo con ramas remotas
Sobre Q2BSTUDIO Q2BSTUDIO es una empresa de desarrollo de software especializada en aplicaciones a medida y software a medida. Ofrecemos soluciones integrales para empresas que quieren aprovechar la inteligencia artificial y generar valor con agentes IA. Nuestros servicios incluyen ciberseguridad avanzada, servicios cloud aws y azure, implementación de servicios inteligencia de negocio y creación de dashboards con power bi. Desarrollamos aplicaciones a medida que integran inteligencia artificial para empresas para automatizar procesos, mejorar la toma de decisiones y mantener los entornos seguros. Trabajamos proyectos de IA para empresas, agentes IA conversacionales y soluciones de business intelligence adaptadas a cada cliente
Por qué elegir Q2BSTUDIO Por experiencia en desarrollo de software, enfoque en seguridad y conocimiento profundo de plataformas cloud aws y azure entregamos proyectos de software a medida que combinan inteligencia artificial, ciberseguridad y analítica con power bi para convertir datos en decisiones
Si necesitas ayuda para implementar flujos de trabajo con control de versiones, automatizar despliegues en la nube o integrar IA en tus procesos contacta con Q2BSTUDIO y transforma tu idea en una solución escalable y segura