Мне нужно было сделать это недавно, и я просто выполнил следующую команду из моего корневого каталога репо:
find . -name '.svn' | xargs git rm -rf --ignore-unmatch
Это рекурсивно ищет все вхождения в папке .svn и удаляет ее и ее содержимоерекурсивно.параметр --ignore-unmatch
не позволяет git задыхаться, если он не находит указанный файл в хранилище.
Следующее, что нужно сделать, конечно, это добавить .svn к вашему .gitnore, чтобы вы не 'ошибочно начинаю отслеживать эти файлы когда-либо снова.