У мене є суперпроект git, який посилається на декілька підмодулів, і я намагаюся блокувати робочий процес для решти членів мого проекту, щоб працювати в межах.
Для цього питання, скажімо, називається мій суперпроект і називається superyпідмодуль subby. (Тоді є спрощення того, що я намагаюся зробити ... Я фактично не використовую гілки для версій, але я подумав, що це буде найпростіше викласти як питання.)
Мій головний відділ superyмає тег v1.0проекту git, позначений subbyяк підмодуль. Гілка superyназивається one.oneі змінила посилання підмодуля в точку тегом v1.1з subby.
Я можу працювати в межах кожної з цих гілок без перешкод, але якщо я спробую оновити one.oneгілку зі змінами в masterгілці, я отримую деякі конфлікти і не можу їх вирішити.
В основному після деякого пробігу git pull . masterу subbyвідділенні, схоже, це створює додаткові підмодулі.
Перед тягне / злиття, я отримую бажаний відгук git submoduleвід one.oneфілії:
$ git checkout master
$ git submodule
qw3rty...321e subby (v1.0)
$ git checkout one.one
$ git submodule
asdfgh...456d subby (v1.1)
Але після витягування він додає додаткові підмодулі під час запуску git submodule:
$ git pull . master
Auto-merged schema
CONFLICT (submodule): Merge conflict in subby - needs qu3rty...321e
Automatic merge failed; fix conflicts and then commit the results.
$ git submodule
qw3rty...321e subby (v1.0)
asdfgh...456d subby (v1.1)
zxcvbn...7890 subby (v1.1~1)
Як видалити / проігнорувати небажані посилання на підмодуль та здійснити свої конфлікти та зміни? Або є параметр, який я можу використовувати зі своїм оригіналом, git pullякий ігнорує мої підмодулі?