Бывает, что после выполнения задачи ветку удаляют в репозитории, а локально она все еще висит. И когда таких веток набирается много, можно в них запутаться 😅
Чтобы удалить разом все такие ветки, нужно перейти в терминале в папку с проектом и выполнить команду:
git branch | grep -v "^\*" | while read branch; do
if ! git show-ref --verify --quiet refs/remotes/origin/$branch; then
git branch -D $branch
fi
done
Объяснение:
•
git branch выводит список всех локальных веток.•
grep -v "^\*" исключает текущую активную ветку (чтобы не удалять её).• Для каждой ветки проверяется, существует ли она на сервере (
refs/remotes/origin/branch).• Если ветка отсутствует на сервере, она удаляется принудительно (
git branch -D), что удалит ветку даже если в ней есть несмерженные изменения.Перед выполнением команды нужно убедиться, что вы переключились на ветку, которую не хотите удалять (например,
main или master).