В конце я использовал следующий скрипт.Он архивирует все теги, которые не названы «тест».Затем все теги в каталоге «refs / archive / tags» удаляются непосредственно по источнику.Нажмите на каталог архива, удалите все локальные теги и извлеките теги из источника.Возможно, есть более простые решения, но это сработало для меня следующим образом.
mkdir refs/archive/tags
shopt -s extglob
mv refs/tags/!(test) refs/archive/tags/
ls refs/archive/tags/ | xargs -n 1 -I% git push origin :refs/tags/%
git push origin refs/archive/tags/*:refs/archive/tags/*
git tag -l | xargs git tag -d
git fetch origin +refs/tags/*:refs/tags/*
Мои коллеги должны использовать следующий скрипт:
git tag -l | xargs git tag -d
git fetch origin +refs/archive/*:refs/archive/* +refs/tags/*:refs/tags/*
Восстановить все теги, если необходимо:
mv refs/archive/tags/* refs/tags/
git push origin --tags