Añadir eliminar-ramas-mergeadas.sh
This commit is contained in:
parent
ad46414016
commit
c433c740e7
60
src/eliminar-ramas-mergeadas.sh
Normal file
60
src/eliminar-ramas-mergeadas.sh
Normal 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
|
||||
|
||||
#######
|
Loading…
Reference in New Issue
Block a user