Говорил людям во freenode / # git Я нашел другой способ сделать то же самое, удалив (git rm) все, кроме каталога, который я хочу сохранить.
git filter-branch --prune-empty --index-filter "git ls-files --exclude-standard |grep -v '^foobar'|xargs git rm -r -f --cached --ignore-unmatch" HEAD
Эта операция медленная, но работает (наверное, так). Я не посмотрел на результат из-за аборта.
Кстати: кто-то в #git сказал мне, что эта операция может часто занимать дни, чтобы закончиться, поэтому вполне вероятно, что если бы я ждал (хотя похоже, что прогресса нет / "зависает"), он закончил.