В ветке фильтра может потребоваться некоторое время для запуска, но я бы попытался дублировать репозиторий локально и использовать его для тестов.
git clone repoA repoB
cd repoB
git filter-branch --tree-filter 'rm -rf C D <other files you DON'T want>' HEAD
Опять же, это может занять много времени, но Я думаю, что он будет делать то, что вы ищете.