Учитывая ссылки, которые вы дали, проблема может быть связана с размером коммита.Может быть, фильтрация вашего репо только по этому каталогу, но сохранение коммитов, связанных с ним, может помочь.
Из git filter-branch
manual:
Переписать репозиторий, чтобы он выглядел так, как будто foodir /был его корнем проекта и отбросил всю другую историю:
git filter-branch --subdirectory-filter foodir -- --all
Надеюсь, что это может помочь.
Сохранить только этот каталог (и сохранить егов структуре), это немного сложнее.
Если исходить из примера из руководства git-filter-branch
, это должно помочь:
git filter-branch --index-filter \
'git ls-files -s foodir/ |
GIT_INDEX_FILE=$GIT_INDEX_FILE.new \
git update-index --index-info &&
mv "$GIT_INDEX_FILE.new" "$GIT_INDEX_FILE"
' -- --all
Короче: выходные данные git ls-files -s foodir/
показывают содержимое индекса (blobtree и имя файла)только для файлов в foodir /;этот список файлов помещается обратно в индекс.
В любом случае, как я отметил в комментарии, вы не сможете просто объединить его - поскольку коммиты теперь другие.