Если вы настаиваете на использовании подмодулей git, то обратите внимание, что он работает на основе репозитория, то есть вы можете прикрепить полное дерево репозитория только как подпапку другого репозитория.Вы не можете фильтровать его, то есть вы получаете полный репозиторий из корневой папки со всеми файлами и подпапками.Таким образом, чистым способом было бы создать repo3 с общими файлами и связать его как подмодуль с repo1 и repo2.
Другой возможный способ - если вы рассматриваете repo1 как поставщика общих файлов и repo2 какпроизводный проект (потребитель).Затем вы можете связать repo1 как подмодуль repo2, а затем изменить repo2 для ссылок на файлы внутри подпапки repo1.Это может быть либо модификация файлов проекта или сценариев сборки, либо просто символические ссылки.
Третий способ - не использовать подмодули git, а использовать какой-нибудь менеджер пакетов.Например, некоторые менеджеры пакетов поддерживают создание пакета с несколькими файлами из репозитория, и затем вы можете повторно использовать этот пакет из другого репозитория.