У меня есть проект git с именем G, который имеет несколько ветвей с именами A, B, C ... Затем я добавляю подмодуль S в ветку A, обновляю его и фиксирую все изменения.Итак, у меня есть файл .gitmodule и «каталог», также называемый S, который лежит в моем рабочем каталоге, а также некоторые изменения в .git / config для отслеживания информации модуля.
Тогда, если я напрямую извлечу ветку B, git определит 'directory' S как неотслеживаемый каталог.В моем понимании, это вызвано тем, что в ветви B нет ни .gitmodule, ни каких-либо других файлов конфигурации, которые могут определить S как подмодуль, так что git просто считает его неотслеживаемым каталогом.
Это немного раздражает,Если я удаляю каталог S в ветви B, то при повторной проверке ветви A субмодуль S также изменяется.Но я не хочу добавлять подмодуль S или каталог S к ветви B (или к любым другим ветвям, кроме A).
Поэтому мой вопрос, есть ли способ просто добавить подмодуль в одной ветви, не затрагивая другие ветви?
Я знаю, что могу "git submodule deinit S", прежде чем оформить заказ B, когда я был в ветви A. Но я думаю, что это не так удобно.Я просто хочу использовать файлы в другом проекте, почему я должен инициализировать и деиницировать его каждый раз?Или мое понимание использования подмодуля неверно?
Я также думаю о добавлении каталога S к .gitignore в других ветвях, но это еще более неудобно, если имеется много ветвей.
ИЯ также думаю о том, чтобы просто скопировать файлы проекта S в ветвь A и зафиксировать их.Но тогда я не могу напрямую отслеживать изменения в проекте S.
И еще я также думаю об использовании символической ссылки проекта S, которая в конечном итоге отвечает моим потребностям.Но я все еще хочу знать, есть ли способ решить эту проблему в git.
(я использую git 2.17.1