Хотел бы опубликовать список простеньких команд GIT, которые, в принципе, должны быть постоянно под рукой, для возврата гита в исходное состояние, согласно origin, если интенсивно идёт работа с бренчами и тегами.
Для того чтобы почистить все бренчи, которые не существуют больше на remote, но оставить свои локальные, которых нет в origin, в GIT существует простая команда:
git fetch [remote] --prune # или git remote prune [remote]
Для того, чтобы удалить все теги GIT, которые больше не существуют в origin, но остались локально воспользуйтесь командой:
git fetch --prune [remote] +refs/tags/*:refs/tags/*
Таким образом, если ваш remote имеет название origin, тогда команды примут следующий вид
git fetch --prune origin +refs/tags/*:refs/tags/*
git fetch origin --prune