我已经对此进行了相当多的搜索,但没有一个结果完全击中头部。
$ mkdir blah
$ git init
$ git submodule add -b 7.x http://git.drupal.org/project/drupal.git drupal
$ git submodule add -b 7.x-1.x http://git.drupal.org/project/devel.git drupal/sites/all/modules/contrib/devel
然后我得到错误:
The following path is ignored by one of your .gitignore files:
drupal/sites/all/modules/contrib/devel
Use -f if you really want to add it.
所以我添加了 -f 参数......
$ git submodule add -f -b 7.x-1.x http://git.drupal.org/project/devel.git drupal/sites/all/modules/contrib/devel
...但是,克隆到正确的位置后,我收到此错误:
fatal: Path 'drupal/sites/all/modules/contrib/devel' is in submodule 'drupal'
Failed to add submodule 'drupal/sites/all/modules/contrib/devel'
我正在研究的原则是,一旦我将所有子模块检查到位,我就可以git clone --recursive
在“容器”存储库上做一个“”,然后它会抓取 Drupal,我所有的“contrib”模块(来自 Drupal 存储库) + 我要添加到的任何自定义模块drupal/sites/all/modules/custom
。我仍然需要研究是否可以自动使子模块成为适当的签出标记版本......
我看过关于 git-slave (第 3 方插件)和 git-subtree 的帖子(看起来像是将所有子模块添加到分支中并将它们合并到位?!)...
我只是觉得我错过了一些东西,因为这是 SVN 可以很容易做到的事情,但每个人似乎都在努力使用 Git ......