Añadir eliminar-ramas-mergeadas.sh

This commit is contained in:
Manuel Vergara 2023-05-26 10:14:26 +00:00
parent ad46414016
commit c433c740e7

View File

@ -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
#######