не удается добавить подмодуль git в репозиторий
(преимущественно вопрос Git, но может иметь отношение к другим пользователям PyroCMS)
у меня есть локальный репозиторий PyroCMS-РЕПО является клоном вилки github основного проекта. У меня также есть модуль PyroCMS, который также является локальным клоном вилки github это.
Я поместил их обоих в отдельные каталоги.
~/Dropbox/websites/pyrocmscommunity-test/
~/Dropbox/github/PyroDatabase/
Я хочу добавить PyroDatabase как субмодуль of pyrocmscommunity-тест, поэтому я могу вытаскивать обновления из github,отслеживать собственные изменения и т. д.
Я попытался сделать это, поднявшись на вершину рабочего дерева и сделав:
git submodule add ../../github/PyroDatabase/ addons/shared_addons/modules/
но он не был завершен должным образом:
Cloning into 'addons/shared_addons/modules/database'...
ssh_exchange_identification: Connection closed by remote host
fatal: The remote end hung up unexpectedly
Я не понимаю этого, поскольку я не указывал SSH-соединение, я просто хотел использовать локальное РЕПО. Что он пытается подключиться, и почему?
кроме того, теперь, когда я повторяю команду, я получаю это:
'addons/shared_addons/modules' already exists in the index
но я не понимаю этого, так как нет .gitmodules
файл и никаких упоминаний о файлах модулей в .gitconfig
либо.
что я делаю неправильно и как мне сбросить вещи?
спасибо, Уильям!--9-->
2 ответов
при указании относительных URL-адресов для местоположения подмодуля Git принимает его относительно origin
(здесь GitHub) URL текущего проекта, а не относительно местоположения проекта в файловой системе. Это связано с тем, что подмодуль является постоянным указателем на удаленное местоположение. Здесь Git пытается связаться с исходным репозиторием github с двумя уровнями вверх, что является неправильным URL-адресом.
Что касается второй ошибки Git создал запись в промежуточной области вашего индекса, и она должна быть удалено (не проставлено) с помощью
git rm -r addons/shared_addons/modules
затем повторите попытку с абсолютным путем к вашему клону:
git submodule add $HOME/Dropbox/github/PyroDatabase/ addons/shared_addons/modules/
В любом случае добавление локального клона вашего проекта в качестве подмодуля само по себе странно, так как подмодули предназначены для другого РЕПО содержащего проекта. Почему бы не отслеживать локальные и исходные коммиты в стандартной git-моде?
какую версию git вы используете? Вероятно, вы не сможете запустить команду снова, так как указанная вами структура каталогов была поэтапной. Вы можете сбросить такие вещи (будьте осторожны с этой командой):
$ git status # check what has been changed
$ git reset --hard HEAD # destroy all working copy changes
действительно полезный способ отладки того, что происходит с git, - установить GIT_TRACE=1
. Итак, попробуйте запустить команду еще раз, как только вы очистите вот так:
$ GIT_TRACE=1 git submodule add ../../github/PyroDatabase/ addons/shared_addons/modules/