Я прочитал так много вопросов о подмодулях и поддеревах git (многие из которых имеют дело со старыми версиями git), что я запутался в том, что лучше для моего варианта использования.
Я набираю свой материал курса и так далее с помощью LaTeX. У меня есть такая структура каталогов
./courses/courseA/someCourse.tex
./exercises/someTheme/document.tex
./includes/latex/mymacros.sty
Я хочу опубликовать свои макросы в ./includes
в качестве публичного репозитория git, оставив остальные в приватном репозитории git.
В настоящее время в корне структуры, описанной выше, имеется основное частное репо, в котором репо включает в себя подмодуль.
Вещи работают довольно хорошо, за исключением случаев, когда я делаю рекурсивный пул, когда меняются мои включения. Подмодуль будет извлекать конкретный коммит, а не ветвь, и поэтому мой репозиторий находится в отдельной голове.
Я понимаю, что для этого есть причина: фиксация основного репо должна означать недвусмысленное содержание и, следовательно, точное состояние подмодуля. Однако я нахожу это чрезвычайно раздражающим изо дня в день, потому что я могу внести некоторые изменения в свои включения и отменить их, чтобы зафиксировать их.
Так что, может быть, подмодуль не то, что нужно? Мне не хватает понимания поддеревьев; особенно я боюсь, что будет сложно распространить на мой основной репо изменения, сделанные публично, включая репо (например, через PR от кого-то, у кого нет доступа к моему личному репо).
Может ли поддерево использоваться в моем случае?
Есть ли способ заставить мой существующий субмодуль как-то заставить себя вести себя так, как я намереваюсь (т. Е. Извлекать и переадресовывать его к источнику / мастеру, когда я делаю тягу в главном репо)?
Я использую git версии 2.17.1.