Гораздо более быстрая версия (подсказка к этому ответу):
git filter-branch --index-filter 'git ls-files -s | sed "s-\t\"*-&newsubdir/-" | GIT_INDEX_FILE=$GIT_INDEX_FILE.new git update-index --index-info && mv "$GIT_INDEX_FILE.new" "$GIT_INDEX_FILE"'
Замените newsubdir
любым каталогом или вложенным каталогом, который вам нравится. В macOS вам, возможно, придется использовать gsed
вместоsed
(для установки с помощью brew install gnu-sed
).