Это очень старый вопрос, но .. Причина, по которой вы не можете сделать именно то, что вы пытались сделать, заключается в том, что git хранит только специальный тип файла "gitlink" для хранения указателя на указанный репозиторий (фактически конкретный коммит) и абсолютно ничего не знает о файлах в этом хранилище. В результате каталог в вашей исходной ссылке на подмодуль не существует, если речь идет о суперпроекте, и фактически заблокирован для использования в индексе git, поскольку он зарезервирован для использования подмодулем.
То, как мы это делаем, - это создание проекта, использующего репозиторий drupal в качестве отправной точки. Мы добавляем проекты drupal как подмодули базового хранилища.
git clone http://git.drupal.org/project/drupal.git drupal
cd drupal
# add submdoules inside the original drupal repository
git submodule add http://git.drupal.org/project/devel.git sites/all/modules/contrib/devel
# even better drush does this for you (but might require you install git_deploy first):
drush dl devel --package-handler=git_drupalorg --gitsubmodule
# commit
git commit -m"Add devel module"
Вы можете изменить пульт или добавить новый пульт и нажать там:
git remote set-url origin git@my-git-host.foo/my-project.git
git checkout -b my-branch-name
git push -u origin my-branch-name
И клонировать в другом месте с помощью --recursive:
git clone --recursive git@my-git-host.foo/my-project.git
Большое отличие от того, что вы пытались сделать, заключается в том, что корень Drupal является корнем репозитория git, а не подпапкой в ./drupal. Вы можете добавить этот настроенный проект drupal как подмодуль другого суперпроекта, если вам нужно, чтобы файлы, отслеживаемые версией, находились в каталоге выше корня drupal. Пока вы клонируете с --recursive, он будет повторяться в подмодули подмодулей, как и следовало ожидать.
Тем не менее, выполнение тяжелой разработки как надпроекта, так и подпроекта в одном и том же рабочем пространстве может быть проблематичным, так как вам нужно зафиксировать и протолкнуть подмодуль, а также обновить и зафиксировать суперпроект или удаленные извлечения будут пропущены необходимые ссылки, поэтому я рекомендую оставить корень друпала в качестве корня, если это возможно.