Las ramas en Git permiten trabajar en diferentes líneas de desarrollo en paralelo. Son útiles cuando deseas experimentar o desarrollar nuevas características sin afectar la versión principal de tu proyecto.
5.1 ¿Qué son las ramas y por qué son útiles?
Las ramas en Git son caminos separados en el desarrollo de un proyecto. La rama principal o «main» es la base de tu proyecto, pero puedes crear otras ramas para probar nuevas ideas o agregar funciones sin interferir con la rama principal.
- Ejemplo de uso de ramas: Si estás trabajando en una nueva característica, puedes crear una rama dedicada para desarrollarla. Esto permite que el equipo principal continúe con el proyecto sin que los cambios experimentales afecten el funcionamiento general.
5.2 Creación y cambio de ramas (git branch, git checkout)
- Crear una nueva rama:
- Para crear una nueva rama, usa el comando
git branchseguido del nombre de la nueva rama:git branch nombre_rama - Esto crea la rama, pero no cambia la rama en la que estás trabajando. Aún seguirás en la rama actual.
- Para crear una nueva rama, usa el comando
- Cambiar a una rama existente:
- Para cambiar a una nueva rama, usa git checkout:
git checkout nombre_rama - A partir de este momento, cualquier cambio que hagas será registrado en la nueva rama.
- Para cambiar a una nueva rama, usa git checkout:
- Crear y cambiar de rama en un solo paso:
- Un comando rápido es git checkout -b nombre_rama, que crea y cambia a la nueva rama de una vez:
git checkout -b nombre_rama
- Un comando rápido es git checkout -b nombre_rama, que crea y cambia a la nueva rama de una vez:
5.3 Fusionar ramas con git merge
Cuando finalizas el trabajo en una rama y deseas combinarlo con otra (por ejemplo, main), puedes usar git merge.
Para que veas mejor el ejemplo crea un archivo en la nueva rama a la que te ha cambiado y ejecuta el add, commit y push.
- Fusionar una rama en otra:
- Primero, cambia a la rama a la que deseas fusionar (por ejemplo,
main):git checkout main - Luego, usa
git mergepara integrar los cambios de la rama enmain:git merge nombre_rama - Este comando fusiona los cambios de nombre_rama en la rama actual (en este caso, main), integrando el trabajo realizado en ambas ramas.
- Primero, cambia a la rama a la que deseas fusionar (por ejemplo,
5.4 Resolución de conflictos en la fusión de ramas
A veces, al fusionar ramas, puede haber conflictos, es decir, cambios en las mismas líneas de código en ambas ramas. Git no puede decidir qué cambio aplicar, y pide al usuario resolver el conflicto manualmente.
Identificar conflictos:
Después de un git merge, Git marcará los archivos con conflictos. Abre el archivo en tu editor de texto y verás las secciones en conflicto marcadas con <<<<<<, ======, y >>>>>>:
<<<<<<< HEAD
Contenido en la rama actual (main)
=======
Contenido en la rama fusionada (nombre_rama)
>>>>>>>
El contenido entre <<<<<<< y ======= es de la rama actual, mientras que el de ======= a >>>>>>> es de la otra rama. Elige o combina estos cambios según prefieras.
Resolver y marcar el conflicto como resuelto:
- Después de resolver el conflicto, guarda el archivo y usa:
git add nombre_archivo - Luego, finaliza la fusión con un commit:
git commit - Git ahora considerará la fusión como completada.