是否可以下载仅包含工作目录的存储库的子模块?
如果我从GitHub下载存储库的tarball,这相当于没有.git
文件夹的浅层克隆,是否可以将子模块“下载”到工作目录中?
我尝试git init && git submodule update --init
,但这既没有初始化也没有更新子模块。 .gitmodules
文件位于当前目录中。
更新:关于这个问题的更多背景知识:我们想在Travis CI使用tarball检查存储库,但是有些人使用git子模块。因此,“不要使用Git子模块”不是一个好的答案,但答案实际上也不一定是可维护的。我只想要一个已经检出代码并且初始化了子模块的文件夹,不需要任何允许我在以后删除更多更改的内容。
答案 0 :(得分:2)
将wget / tar方法与git init
结合起来无法帮助您初始化子模块:
git init
后,所有内容都未跟踪。
您需要在之前添加并提交所有内容:
git submodule update --init --recursive --force
那个git submodule
命令将“工作”,但只创建空目录
这是因为tar文件不包含由special entries (160000)创建的 git submodule add
。
您需要重新声明这些子模块:
C:\prog\git\ReactiveCocoa-2.0-development>git submodule add --name xcconfigs https://github.com/jspahrsummers/xcconfigs.git external\xcconfigs
Cloning into 'external\xcconfigs'...
remote: Counting objects: 312, done.
remote: Compressing objects: 100% (229/229), done.
Receal 312 (delta 87), reused 306 (delta 82)
Receiving objects: 100% (312/312), 64.51 KiB | 0 bytes/s, done.
Resolving deltas: 100% (87/87), done.