A veces podemos acumular muchas ramas de git en nuestro repositorio local. Se asume el uso de git flow o similar.
Para poder eliminarlas sin eliminarlas en el repositorio remoto podemos usar este comando:
git branch --merged | grep -Ev "(^\*|master|develop)" | xargs git branch -d
-
--merged: Solamente lista ramas alcanzables desde el commit actual.
-
grep -Ev: ejecuta el patrón (E) con selección invertida (v).
-
(^*|master|develop): cambia develop por el nombre de tu rama de desarrollo.
-
xargs: recoge la salida del comando anterior, que sería el nombre de las ramas a borrar, para que la use el siguiente.
-
git branch -d: elimina la rama especificada, en este caso, la que le llega desde xargs.