У меня есть 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 = git@github.com:kaiengelhardt/OpenLearnWareKit.git
branch = master
[submodule "Frameworks/OpenLearnWareClient"]
path = Frameworks/OpenLearnWareClient
url = git@github.com:kaiengelhardt/OpenLearnWareClient.git
branch = master
[submodule "Frameworks/KEFoundation"]
path = Frameworks/KEFoundation
url = git@github.com:kaiengelhardt/KEFoundation.git
branch = master
Я использую git версии 2.20.1 (Apple Git-117).
Кто-нибудь знает, что здесь происходит не так и как заставить работать рекурсивное нажатие?