Система субмодулей позволяет создавать отдельный репозиторий в вашей собственной подпапке, но это не идет дальше.Они по-прежнему являются отдельными репозиториями в том, что касается базовой функциональности git.
Вы можете зафиксировать либо родительское репо (как если бы у него не было подмодуля), либо дочернее репо (как если бы оно не было)репо).То же самое с нажатием: у вас есть один пульт (или набор пультов) для родителя, а другой для подмодуля.
Я могу придумать пару решений для вашей проблемы:
- либо добавьте Makefile в ваш родительский проект и зафиксируйте его как обычно, но настройте целевые команды Makefile так, чтобы они работали с подмодулем gnome-keyring-query, то есть вы можете добавить целевые имена типа
make keyring-this
, make keyring-that
. - или сделайте форк из репозитория подмодулей и вставьте коммит Makefile в этот форк.
Первый подход прост и понятен, но он не позволяет вам изменятьСубмодуль исходный код или настроить его много, кроме того, что предусмотрено авторами.По сути, у вас будет субмодуль удаленного доступа только для чтения.
2-й подход более гибкий, но он, безусловно, увеличивает когнитивную нагрузку (вы должны отслеживать 3 ветки: репо, субмодуль-форк и субмодуль-upstream (origin) вместо 1), что является одной из причин того, почему подмодули печально известны, и почему существуют некоторые альтернативы, такие как git subtree .
PS Во многих случаях я предпочитаюизбегайте субмодулей в пользу менеджеров пакетов или даже вендоров (копирование с вставкой исходного кода и / или двоичных файлов), что, как правило, представляет собой меньшую нагрузку, особенно если вы не планируете использовать субмодули в масштабе (для управления значительным количеством зависимостей).