Chuck's Academy

GIT

Trabajando con Ramas en Git

En este capítulo, exploraremos cómo usar una de las características más poderosas de Git: las ramas. Las ramas te permiten trabajar en diferentes características o correcciones de bugs de forma aislada, sin afectar el código en la rama principal. Al final de este capítulo, sabrás cómo crear, cambiar y fusionar ramas, así como manejar conflictos que puedan surgir durante el proceso.

¿Qué es una Rama?

Una rama en Git es simplemente un puntero a una secuencia de commits. La rama por defecto en la mayoría de los proyectos se llama main, pero puedes crear nuevas ramas para trabajar en diferentes líneas de desarrollo. Esto es especialmente útil cuando trabajas en una nueva característica o en la corrección de un error sin interferir con el trabajo de otros desarrolladores o con el código en producción.

Esta imagen muestra el concepto de ramas en Git, con una rama principal y ramas secundarias que divergen de ellaEsta imagen muestra el concepto de ramas en Git, con una rama principal y ramas secundarias que divergen de ella

Crear y Cambiar de Rama

Para crear una nueva rama en Git, usa el comando git branch seguido del nombre de la nueva rama. Luego, puedes cambiar a esa rama con el comando git checkout o el más reciente git switch.

bash
"El comando 'git branch' crea una nueva rama, pero no cambia a ella automáticamente. Para trabajar en la nueva rama, usa 'git switch' seguido del nombre de la rama. Esto te permite trabajar en una nueva línea de desarrollo sin afectar la rama principal."

Por ejemplo, si estás trabajando en una nueva funcionalidad llamada "feature-X", puedes crear una rama para ello:

bash
"Con 'git branch feature-X' creas una nueva rama llamada feature-X. Después, cambias a esa rama con 'git switch feature-X' para empezar a trabajar en ella."

Fusionar Ramas

Una vez que hayas completado tu trabajo en una rama, querrás fusionar esos cambios de nuevo en la rama principal (o en cualquier otra rama). Para hacer esto, usamos el comando git merge.

Primero, cambia a la rama en la que deseas fusionar los cambios (por ejemplo, main), y luego ejecuta el comando git merge seguido del nombre de la rama que deseas fusionar.

bash
"Primero, cambia a la rama principal con 'git switch main'. Luego, usa 'git merge feature-X' para combinar los cambios de la rama feature-X en la rama principal."

Si no hay conflictos, Git fusionará los cambios automáticamente. Si hay conflictos, Git te pedirá que los resuelvas manualmente.

Resolución de Conflictos

A veces, al intentar fusionar dos ramas, puede ocurrir un conflicto si Git no puede decidir automáticamente cómo combinar los cambios. En estos casos, Git marcará los archivos en conflicto y te permitirá resolverlos manualmente.

Cuando se produce un conflicto, puedes ver qué archivos están en conflicto usando git status. Luego, abre esos archivos y verás secciones delimitadas por líneas como <<<<<<<, ======= y >>>>>>>, que indican los diferentes cambios.

Después de resolver el conflicto en cada archivo, agrégalo de nuevo al área de preparación con git add y luego completa la fusión con un commit.

bash
"Después de resolver el conflicto en los archivos afectados, usa 'git add nombre-del-archivo' para agregar los archivos modificados y luego 'git commit' para completar la fusión."

Visualizar las Ramas

Para ver un listado de todas las ramas en tu repositorio, puedes usar el comando git branch. Esto te mostrará todas las ramas locales, con un asterisco (*) junto a la rama en la que estás trabajando actualmente.

bash
"El comando 'git branch' muestra una lista de todas las ramas locales en tu repositorio. La rama activa estará marcada con un asterisco."

Si quieres ver un gráfico más detallado de las ramas y cómo se relacionan con los commits, puedes usar el comando git log con la opción --graph:

bash
"El comando 'git log --oneline --graph --all' te muestra un historial gráfico de los commits y las ramas en el repositorio. Es una forma útil de ver cómo se han bifurcado y fusionado las ramas a lo largo del tiempo."

Eliminar una Rama

Una vez que hayas fusionado una rama y ya no la necesites, puedes eliminarla con el comando git branch -d:

bash
"El comando 'git branch -d' seguido del nombre de la rama elimina esa rama del repositorio local. Es una buena práctica eliminar las ramas que ya no se están utilizando para mantener tu repositorio limpio."

Si intentas eliminar una rama que no ha sido fusionada, Git te advertirá y te pedirá que uses la opción -D (en mayúsculas) para forzar su eliminación.

Conclusión

En este capítulo, hemos aprendido a trabajar con ramas en Git, una herramienta fundamental para gestionar diferentes líneas de desarrollo dentro de un mismo proyecto. Ya sabes cómo crear, cambiar, fusionar y eliminar ramas, así como manejar conflictos que puedan surgir durante las fusiones. En el próximo capítulo, profundizaremos en la colaboración con otros desarrolladores, incluyendo cómo trabajar con repositorios remotos y sincronizar tus cambios con los de otras personas.


Pregúntame lo que sea