Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
子模块don';t与Git同步_Git_Git Submodules - Fatal编程技术网

子模块don';t与Git同步

子模块don';t与Git同步,git,git-submodules,Git,Git Submodules,我有一个依赖于许多其他组件的库。我已经设置了主项目,然后使用git submodule add[url][path]添加了许多子模块 原来的项目运作良好。每次我添加子模块时,它都被克隆到正确的目录中 - Main project -- Sub project [cloned correctly] 之后,我将原始项目推送到git。现在,当我克隆主项目时,子项目目录会出现,但它们是空的 - Main project -- Sub project just empty folder .gitmod

我有一个依赖于许多其他组件的库。我已经设置了主项目,然后使用git submodule add[url][path]添加了许多子模块

原来的项目运作良好。每次我添加子模块时,它都被克隆到正确的目录中

- Main project
-- Sub project [cloned correctly]
之后,我将原始项目推送到git。现在,当我克隆主项目时,子项目目录会出现,但它们是空的

- Main project
-- Sub project just empty folder
.gitmodules已正确填充,但在新克隆的主项目中,.git/modules文件夹为空

没有像git submodule sync或git submodule update这样的命令可以工作。但是,如果我手动重新添加模块,它们就会出现在目录中,而无需重新下载。它说:

Reactivating local git directory for submodule
这几乎就像git将模块存储在内部,但不将它们添加到文件系统中

对于这种情况,最好的做法是什么?

你错过了

git submodule init

在克隆中(在成功运行git子模块更新之前)

克隆后,您需要:

git submodule init 
git submodule update

克隆主回购并同时获取子模块,方法是:

git clone --recursive URL
可能重复的