Вы можете попробовать, , как здесь , сначала клонировать подмодуль в качестве обычного хранилища, а затем использовать git submodule absorbgitdirs
.
Путем клонирования сначала сглубина 1, вы не получаете слишком много данных:
git clone --depth=1 --no-checkout an/Url <path/to/submodule>
git submodule add an/Url <path/to/submodule>
git submodule absorbgitdirs
Затем вы можете изменить .git/modules/<path/to/submodule>/info/sparse-checkout
git -C <path/to/submodule> config core.sparseCheckout true
echo 'foo/*' >>.git/modules/<path/to/submodule>/info/sparse-checkout
Наконец, получите только те файлы, которые вам нужны:
git submodule update --force --checkout <path/to/submodule>