Как я могу сделать git -svn избавиться от удаленных веток, которые больше не существуют?

Есть ли удобный способ, чтобы мой локальный репозиторий git забыл о удаленных ветвях, которые были удалены? git svn fetch не "повторно синхронизирует все", как я надеялся. Мое местное репо было настроено с использованием импорта стандартного макета репозитория svn (git svn -s …).

related: Почему git remote ничего не перечисляет в моем реестре git -svn?

Ответ 1

Вы можете удалить осиротые удаленные ветки, выполнив следующие команды:

git branch -d -r my_branch
rm -rf .git/svn/refs/remotes/my_branch

Чтобы удалить все осиротевшие ветки одновременно, а не по одному, см. ответ здесь.

Ответ 2

С первой мыслью я предлагаю попробовать git remote prune. Выдержка из документация:

чернослив

Удаляет все устаревшие удаленные слежения ветки под. Эти устаревшие ветки уже удалены из удаленного репозитория но все же локально доступно в "пультах" /.

С параметром --dry-run сообщите, что ветки будут обрезаны, но не фактически обрезать их.

Я думаю, что это также должно работать с удаленным именем svn...