From c433c740e741d5eff09bc320edea76b1e946efff Mon Sep 17 00:00:00 2001 From: Manuel Vergara Date: Fri, 26 May 2023 10:14:26 +0000 Subject: [PATCH] =?UTF-8?q?A=C3=B1adir=20eliminar-ramas-mergeadas.sh?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/eliminar-ramas-mergeadas.sh | 60 +++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 src/eliminar-ramas-mergeadas.sh diff --git a/src/eliminar-ramas-mergeadas.sh b/src/eliminar-ramas-mergeadas.sh new file mode 100644 index 0000000..6846aec --- /dev/null +++ b/src/eliminar-ramas-mergeadas.sh @@ -0,0 +1,60 @@ +#!/bin/bash + +# Sincronizo local con el remoto +echo -e "\e[32mPrimero vamos a sincronizar el repo local con el remoto\e[0m" +git pull origin HEAD $@ +git fetch origin +git fetch --prune + + +# Filtrar ramas +branches=($(git branch -a --merged | egrep -v "(^\*|main|master|default|trunk|pro|prod|production|release)")) + +# Verificar si hay ramas para eliminar +if [ ${#branches[@]} -eq 0 ]; then + echo -e "\e[32mNo hay ramas para eliminar.\e[0m" + exit 0 +fi + +# Mostrar las ramas a eliminar +echo -e "\e[33mOJO! Las siguientes ramas serán eliminadas:\e[0m" +for branch in "${branches[@]}" +do + echo "- $branch" +done + + +# Solicitar confirmación +read -p "¿Estás seguro de que deseas eliminar estas ramas? (s/n): " confirm +if [[ $confirm == "s" ]]; then + + # Eliminar las ramas filtradas + for branch in "${branches[@]}" + do + + branch_name=${branch#remotes/origin/} # Eliminar "remotes/origin/" del nombre de la rama + + # Verificar si la rama remota existe + if git rev-parse --quiet --verify "refs/remotes/origin/$branch_name" >/dev/null; then + + echo -e "\e[34mSe procede a eliminar la rama: $branch_name\e[0m" + + git push origin --delete "$branch_name" + + else + + echo -e "\e[31mLa rama $branch_name no existe en el repositorio remoto. Saltando eliminación.\e[0m" + + fi + + done + +elif [[ $confirm == "n" ]]; then + echo "Operación cancelada." + +else + echo "Opción no válida. Operación cancelada." + +fi + +#######