将子模块克隆到目录中

and*_*axo 5 git git-submodules

我在项目中创建子模块时遇到问题。如果我直接在存储库根目录中创建子模块,则一切正常。如果子模块更深,则不会克隆存储库。

例如,这按预期工作:

git submodule add git://someproject.com/.git someproject
Run Code Online (Sandbox Code Playgroud)

但是,当我运行以下命令时,项目将被添加到.gitmodules并创建一个存储库,但不会下拉任何代码(即使在 a 之后git submodule update --init)。该命令不会产生任何输出。

git submodule add git://someproject.com/.git lib/someproject
Run Code Online (Sandbox Code Playgroud)

and*_*axo 3

看来之前添加子模块的尝试使我的存储库处于错误状态。执行以下步骤后,我能够正确克隆子模块:

  1. 删除子模块:rm -rf lib/someproject
  2. .gitmodules从文件中删除子模块
  3. .git/config从文件中删除子模块
  4. 消除.git/modules/someproject

然后再次运行git add submodule命令就成功了。非常感谢所有将我推向正确方向的回答者!