У меня есть репозиторий git с тремя подмодулями. Содержащий репозиторий имеет две ветки master
и develop
. Все подмодули имеют только одну ветвь — ветвь master
.
Когда содержащий репозиторий находится в основной ветке, отправка в источник через git push --recurse-submodules=on-demand
работает, как и ожидалось. Выталкиваются как содержащий проект, так и его подмодули.
Теперь вот проблема. Когда содержащий репозиторий находится в ветке develop
, у меня возникает проблема при отправке через git push --recurse-submodules=on-demand
. Операция push отменяется и печатается сообщение об ошибке.
Вот полный вывод, который я получаю от git:
$ git push --recurse-submodules=on-demand
fatal: src refspec 'refs/heads/develop' must name a ref
fatal: process for submodule 'Frameworks/OpenLearnWareClient' failed
Я могу смягчить эту проблему, сначала отправив изменения в каждый подмодуль вручную, а затем отправив содержащий их репозиторий. Однако это очень утомительно и противоречит цели --recurse-submodules=on-demand
.
Вот мой файл .gitmodules
:
[submodule "Frameworks/OpenLearnWareKit"]
path = Frameworks/OpenLearnWareKit
url = [email protected]:kaiengelhardt/OpenLearnWareKit.git
branch = master
[submodule "Frameworks/OpenLearnWareClient"]
path = Frameworks/OpenLearnWareClient
url = [email protected]:kaiengelhardt/OpenLearnWareClient.git
branch = master
[submodule "Frameworks/KEFoundation"]
path = Frameworks/KEFoundation
url = [email protected]:kaiengelhardt/KEFoundation.git
branch = master
Я использую git версии 2.20.1 (Apple Git-117).
Кто-нибудь знает, что здесь происходит не так и как заставить работать рекурсивное нажатие?
git push --recurse-submodules=on-demand
в своей веткеdev
, и он успешно отправил новую фиксацию в подмодуль. (Примечание: здесь не использовался рабочий процесс PR, просто отправка прямо в мою собственную ветку) - person Devin Rhode   schedule 25.11.2019--recurse-submodules=no
. Очевидно, что в ОП дело обстоит иначе, но оставить этот комментарий для будущих искателей. Оба моих подмодуля имеют отдельные головы. - person Adam J Richardson   schedule 15.05.2021