Хорошо, так что благодаря Адаму я нашел ответ, это было довольно очевидно, но, тем не менее, вот оно:
Если вы проверите, что делает git submodule add
, вы заметите, что он делает три вещи:
- Добавляет строки в файл
.gitmodules
,
- клонирует репо по «пути», который вы определили в команде, и
- Добавляет модуль в файл
.git/config
.
Таким образом, по сути, единственное различие между репо с субмодулем, добавленным вручную, и субмодулем, добавленным с помощью команды git submodule
, заключается в содержимом самого репо.
Отвечая тем же примером, вы должны:
$ git clone git://github.com/jgarber/redcloth.git plugins/redcloth
Добавить следующее в .git/config
файл *:
[submodule "redcloth"]
url = git://github.com/jgarber/redcloth.git
Убедитесь, что вы хотя бы добавили их в репозиторий git:
$ git add plugins/redcloth
А затем проверьте, действительно ли git "знает":
$ git submodule status
0766810ab46f1ed12817c48746e867775609bde8 plugins/redcloth (v4.2.8)
30fb044db6ba5ea874ebc44a43bbd80a42676405 rack (1.3.0-64-g30fb044)
* обратите внимание, что переменная "path", которую вы используете в файле .gitmodules
, не требуется в этом файле