Вариант 1 (история изменений, добавлений файлов в папках останется):
- Удалить локально, закомитить
- Добавить названия папок в
.gitignore
git push
Вариант 2 (история
история будет полностью перезаписана, изменений, добавлений файлов в папках не будет):
Это вариант следует согласовывать, если с репозиторием работает больше одного разработчика.
git obliterate <путь_папки>
(https://github.com/tj/git-extras)
git push --force
После этой операции другим участникам, надо будет локально сбросить ветки:
git fetch
git checkout master
git reset --hard origin/master
Аналог команды
git obliterate исключительно средствами Git:
git filter-branch --force --index-filter \
'git rm --cached --ignore-unmatch -r <путь_папки>' \
--prune-empty --tag-name-filter cat -- --all