You've already forked config-ubuntu
61 lines
1.4 KiB
Bash
61 lines
1.4 KiB
Bash
#!/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
|
|
|
|
#######
|