Git

Git

Tutorial Git: Ramas

Git ramas: creación y manejo. Domina la creación y manejo de ramas en Git con ejemplos prácticos y detallados.

GitHub Desktop es una interfaz gráfica de usuario que permite a los usuarios interactuar con Git y GitHub de una manera más visual y amigable.

Una de las características esenciales de Git, y por ende de GitHub Desktop, es el concepto de ramas (branches en inglés).

¿Qué es una rama?

Una rama en Git es una línea independiente de desarrollo.

Se puede visualizar como una manera de tener múltiples "copias" del código, donde se pueden realizar cambios sin afectar el código principal o la versión estable del proyecto.

¿Por qué son útiles las ramas?

Las ramas son esenciales porque permiten trabajar en características, correcciones de errores o experimentos sin interferir con el código en producción.

Una vez que los cambios en una rama están completos y probados, pueden ser fusionados de nuevo en la rama principal.

Ejemplo de uso de ramas

Supongamos que se tiene un proyecto con un archivo llamado saludo.txt.

Contenido de saludo.txt:

Hola, mundo.

Se quiere añadir un nuevo saludo en otro idioma, pero sin afectar la versión actual hasta estar seguro de que el cambio es correcto. Para esto, se crea una nueva rama llamada agregar-saludo.

Creación de una rama

Para crear una nueva rama en GitHub Desktop:

  1. Abrir GitHub Desktop y seleccionar el repositorio en el que se quiere trabajar.
  2. En la parte superior, hacer clic en el menú desplegable "Current branch" (Rama actual).
  3. Hacer clic en "New branch" (Nueva rama) y asignar un nombre, por ejemplo: agregar-saludo.
  4. Hacer clic en "Create branch" (Crear rama).

Ahora se encuentra en la rama agregar-saludo, y los cambios que se hagan aquí no afectarán la rama principal (por defecto llamada main o master).

Realizando cambios

Dentro de la rama agregar-saludo, se modifica el archivo saludo.txt para añadir un nuevo saludo:

Hola, mundo.
Hello, world.

Una vez realizado el cambio, se guarda y se procede a realizar un "commit" en GitHub Desktop, escribiendo un mensaje descriptivo, por ejemplo: "Añadido saludo en inglés".

Fusionando la rama

Después de revisar y probar los cambios, se decide que es el momento de integrarlos en la rama principal.

  1. En GitHub Desktop, seleccione la rama principal (main o master).
  2. Haga clic en el botón "Merge into Current Branch" (Fusionar en la rama actual).
  3. Elija la rama agregar-saludo y confirme la fusión.

De esta manera, los cambios de la rama agregar-saludo se incorporan en la rama principal.

Buenas prácticas con ramas

Aunque trabajar con ramas es relativamente sencillo, hay algunas prácticas recomendadas para mantener un flujo de trabajo coherente y evitar conflictos:

1. Nombramiento claro

Es crucial que las ramas se nombren de manera descriptiva para indicar su propósito. Por ejemplo:

  • corregir-error-login
  • funcionalidad-pago-en-linea

Estos nombres indican claramente el propósito de la rama, facilitando la organización y la colaboración entre los miembros del equipo.

2. Mantener las ramas actualizadas

Si la rama principal sufre cambios mientras se trabaja en una rama secundaria, es recomendable actualizar esta rama secundaria con los cambios más recientes.

Esto se puede hacer fusionando la rama principal en la rama secundaria o utilizando rebase.

3. Evitar ramas muy extensas

Es una buena práctica mantener las ramas lo más cortas y específicas posible.

Si una rama se extiende demasiado en el tiempo, es más probable que surjan conflictos al intentar fusionarla con la rama principal.

Es mejor fusionar cambios pequeños y frecuentes que grandes cambios esporádicos.

4. Eliminar ramas obsoletas

Una vez que una rama se ha fusionado y ya no es necesaria, es una buena práctica eliminarla para mantener el repositorio limpio y organizado.

En GitHub Desktop, se puede eliminar fácilmente una rama seleccionándola y haciendo clic en el icono de la papelera o "Delete".

Resolución de conflictos

Es posible que, al intentar fusionar dos ramas, se presenten conflictos si se han realizado cambios en las mismas partes del código en ambas ramas.

GitHub Desktop ofrece herramientas para resolver estos conflictos de manera visual.

Cuando se presenta un conflicto:

  1. GitHub Desktop mostrará un mensaje indicando que hay conflictos por resolver.
  2. Se deberá abrir el archivo en conflicto, donde Git habrá insertado marcas especiales para indicar las áreas problemáticas.
  3. Manualmente, se decide qué versión del código se quiere mantener o se realiza la edición correspondiente para integrar ambas versiones.
  4. Una vez resueltos los conflictos, se guarda el archivo y se realiza un nuevo commit para finalizar la fusión.

Conclusión

Las ramas en GitHub Desktop y en Git en general son esenciales para mantener un desarrollo organizado y fluido. Permiten experimentar, añadir nuevas funcionalidades o corregir errores sin alterar la versión estable del software. Utilizarlas adecuadamente y seguir buenas prácticas garantiza un flujo de trabajo eficiente y minimiza los riesgos asociados con la introducción de cambios en el código.

Certifícate en Git con CertiDevs PLUS

Ejercicios de esta lección Ramas

Evalúa tus conocimientos de esta lección Ramas con nuestros retos de programación de tipo Test, Puzzle, Código y Proyecto con VSCode, guiados por IA.

Todas las lecciones de Git

Accede a todas las lecciones de Git y aprende con ejemplos prácticos de código y ejercicios de programación con IDE web sin instalar nada.

Certificados de superación de Git

Supera todos los ejercicios de programación del curso de Git y obtén certificados de superación para mejorar tu currículum y tu empleabilidad.

En esta lección

Objetivos de aprendizaje de esta lección

  1. Entender el concepto de ramas en Git y GitHub Desktop.
  2. Aprender a crear y gestionar ramas en GitHub Desktop.
  3. Conocer buenas prácticas para trabajar con ramas.
  4. Conocer cómo mantener las ramas actualizadas.
  5. Aprender a resolver conflictos al fusionar ramas.
  6. Comprender la relevancia de las ramas en el desarrollo colaborativo.