Eliminar ramas fusionadas en Git

Reema Faysal 7 junio 2022
  1. Ver las ramas existentes en Git
  2. Eliminar varias ramas combinadas locales a la vez en Git
  3. Eliminar ramas combinadas locales y remotas en Git
Eliminar ramas fusionadas en Git

En Git, la bifurcación es necesaria para trabajar con muchos miembros del equipo. Las ramas representan instantáneas de los cambios que se han realizado en el pasado en Git.

Cuando creamos una nueva rama en Git, está destinada a incluir los cambios que hicimos para corregir los errores o agregar nuevas funciones.

A través de Git podemos gestionar fácilmente las ramas, ya sea para crearlas o eliminarlas mediante comandos. Eliminar ramas no es una excepción en Git.

Muchos desarrolladores se sienten satisfechos cuando su repositorio de Git está limpio al eliminar las ramas fusionadas, y son fáciles de usar para el nuevo desarrollo de las ramas existentes.

Veamos cómo eliminar las ramas que ya se fusionaron con los siguientes comandos en Git.

Ver las ramas existentes en Git

Antes de comenzar a eliminar las ramas existentes en un repositorio, echemos un vistazo a toda la lista de ramas ejecutando el siguiente comando:

git branch

Para ver la lista de todas las ramas remotas, ejecutaremos el siguiente comando:

git branch -r

Para ver la lista de todas las ramas (locales y remotas), ejecutaremos el siguiente comando:

git branch -a

Como resultado de estos comandos, veremos una lista de ramas. No se deben eliminar todas las ramas que podemos ver. Nuestro objetivo es limpiar las ramas que ya están fusionadas.

Para ver la lista de todas las ramas fusionadas locales, ejecutaremos el siguiente comando:

git branch --merged

Para ver la lista de todas las ramas locales no fusionadas, ejecutaremos el siguiente comando:

git branch --no-merged

Eliminar varias ramas combinadas locales a la vez en Git

Eliminar ramas una a la vez lleva mucho más tiempo y no es el trabajo correcto. Por supuesto, somos desarrolladores, y no preferimos hacer una tarea repetitiva cuando podemos robotizarla usando algunos comandos.

Como hemos visto en la lista de ramas fusionadas, puede haber algunas ramas que no queramos eliminar en el futuro. Entonces, para este propósito, agregaremos algunos argumentos con el comando para eliminar todas las ramas fusionadas para excluir las ramas que no queremos eliminar.

El siguiente comando no incluirá la rama master, y cualquier cosa que tenga dev en ella:

git branch --merged| egrep -v "(^\*|master|main|dev)"

Si queremos saltarnos alguna otra rama, añadiremos el nombre de la siguiente manera:

git branch --merged| egrep -v "(^\*|master|main|dev|skip_branch_name)"

Ahora, supongamos que queremos eliminar las ramas locales existentes del repositorio que ya se fusionaron en el pasado en la rama del repositorio actualmente desprotegida. En ese caso, ejecutaremos el siguiente comando:

git branch --merged | grep -i -v -E "master|dev"| xargs git branch -d

Eliminar ramas combinadas locales y remotas en Git

Para eliminar una rama local fusionada, ejecutaremos el comando git branch con la opción -d como se menciona a continuación.

git branch -d <branch-name>

Si la rama local no está fusionada, ejecutaremos el siguiente comando:

git branch -D <branch-name>

Si queremos borrarlo del remoto, ejecutaremos el comando git push con la opción --delete (aquí, el nombre del remoto es el origen, que está por defecto):

git push --delete origin <branch-name>

Alternativamente, también podemos usar el siguiente comando:

git push origin :<branch-name>

Después de que hayamos eliminado la rama del remoto, vamos a podar para eliminar las ramas de seguimiento remoto con el siguiente comando:

git remote prune origin

De forma individual, también podemos podar las ramas de seguimiento remoto con el siguiente comando:

git branch -dr <branch-name>

Artículo relacionado - Git Merge