Один из возможных способов сделать это - добавить путь к подмодулю, который вы хотите игнорировать, в файл .gitignore
основного репозитория.В вашем случае это будет
#.gitignore
extern/A/test/data/X/*
Также, чтобы отследить его, вы можете сделать это,
git rm -r --cached extern/A/test/data/X/
ПРИМЕЧАНИЕ: Я не проверял его, поэтому, пожалуйста, поэкспериментируйте с клоном вашего проекта
В качестве альтернативы, вы можете использовать переменную submodule.<name>.update
config, чтобы указать, какой подмодуль должен обновляться, как упомянуто здесь Как исключить определенный подмодуль gitиз обновления?
git -c submodule."extern/A/test/data/X".update=none submodule update --init --recursive
Приведенная выше команда отключает обновление для подмодуля "extern / A / test / data / X"