如何克隆git存储库,以便它也克隆其子模块?
运行gitclone$REPO_URL只会创建空的子模块目录。
如何克隆git存储库,以便它也克隆其子模块?
运行gitclone$REPO_URL只会创建空的子模块目录。
当前回答
您可以从github复制克隆url
然后使用:git clone—递归
其他回答
[快速回答]
克隆父回购(包括一些子模块回购)后,请执行以下操作:
git submodule update --init --recursive
在Git 2.13及更高版本中,可以使用--recurse子模块代替--recursive:
git clone --recurse-submodules -j8 git://github.com/foo/bar.git
cd bar
编者注:-j8是一种可选的性能优化,在2.8版中提供,并且一次并行获取最多8个子模块——参见man git clone。
Git 1.9版至2.12版(-j标志仅在2.8+版中可用):
git clone --recursive -j8 git://github.com/foo/bar.git
cd bar
在Git 1.6.5及更高版本中,您可以使用:
git clone --recursive git://github.com/foo/bar.git
cd bar
对于已克隆的repo或较旧的Git版本,请使用:
git clone git://github.com/foo/bar.git
cd bar
git submodule update --init --recursive
在填充子模块之前,您必须做两件事:
git submodule init
git submodule update
如果是一个新项目,你可以这样做:
$ git clone --recurse-submodules https://github.com/chaconinc/YourProjectName
如果已安装,则:
$ cd YourProjectName (for the cases you are not at right directory)
$ git submodule init
$ git submodule update
克隆存储库时,可以使用--recursive标志。此参数强制git克隆存储库中所有已定义的子模块。
git clone --recursive git@repo.org:your_repo.git
克隆后,有时子模块分支可能会发生更改,因此在其之后运行以下命令:
git submodule foreach "git checkout master"