crear-listar-borrar-ramas-en-git

Crear, listar y borrar ramas en Git

  • 4 min

El comando git branch es la herramienta principal que utilizamos para administrar ramas de nuestro proyecto de Git.

Como vimos en el artículo anterior, en Git las ramas son solo etiquetas ligeras, que nos permiten tener líneas independientes de evolución del proyecto.

La filosofía de Git es: “Crea ramas para todo”. ¿Vas a arreglar una falta de ortografía? Crea una rama. ¿Vas a probar una librería nueva? Crea una rama.

Son baratas de crear y fáciles de destruir. En esta entrada veremos cómo hcarlo con el comando git branch.

Listar ramas: ¿Qué hay en mi proyecto?

Lo primero que solemos hacer al entrar en un proyecto es ver el panorama. Para ver qué ramas existen en tu repositorio local, simplemente escribe:

git branch
Copied!

El resultado será algo parecido a esto:

  develop
  feature/login
* main
  testing
Copied!
  1. La lista: Te muestra todas las etiquetas locales disponibles.
  2. El asterisco (*): Indica dónde estás ahora mismo. El asterisco señala la rama a la que apunta tu HEAD. En este caso, estamos trabajando en main.

Crear una rama nueva

Para crear una nueva línea de trabajo hacemos,

git branch nombre-de-la-rama
Copied!

Por ejemplo:

git branch feature/nuevo-menu
Copied!

Cconfusión habitual. Ejecutar este comando, Git crea la rama, pero no te mueve a ella.

Si ejecutas git branch justo después, verás:

  feature/nuevo-menu
* main
Copied!

El asterisco sigue en main. Has creado la etiqueta, pero sigues “estando” la rama principal.

Para moverte a la nueva rama tendremos que usar git switch (que veremos en el próximo artículo).

Borrar ramas

Una vez que has terminado una tarea y has fusionado el código (merge) en la rama principal, esa rama de “feature” ya no sirve para nada. Si quieres puedes borrarla.

La forma estándar de borrar una rama es con la opción -d (delete):

git branch -d feature/nuevo-menu
Copied!

Git es muy protector. Antes de borrar la rama, comprobará si ya la has fusionado.

  • Si los cambios de esa rama ya están en en la rama actual), la borrará sin rechistar.
  • Si la rama contiene cambios que no has fusionado (y que se perderían para siempre si la borras), Git te dará un error:
error: The branch 'feature/nuevo-menu' is not fully merged.
Copied!

Borrado forzado (-D)

A veces quieres borrar una rama con cambios sin fusionar. Por ejemplo, hiciste una rama para probar una idea, la idea fue un desastre y quieres tirar todo ese código a la basura.

En ese caso, usamos la D mayúscula (que es un alias de —delete —force):

git branch -D feature/experimento-fallido
Copied!

Esto borrará la rama y los commits asociados a ella se perderán (quedarán huérfanos hasta que el recolector de basura se los coma).

No puedes serrar la rama sobre la que estás sentado. Git no te permitirá borrar la rama marcada con el asterisco *.

Primero tienes que moverte a otra rama (main) y desde ahí borrar la otra.

Renombrar ramas (-m)

A veces escribes mal el nombre al crearla (feature/botno en vez de boton). O el alcance de la tarea cambia.

Para renombrar la rama en la que estás actualmente:

git branch -m nuevo-nombre-correcto
Copied!

Si quieres renombrar una rama diferente (sin moverte a ella):

git branch -m nombre-viejo nombre-nuevo
Copied!