是否可以下载只有工作目录的存储库的子模块?
如果我从github下载存储库的tarball,相当于一个没有.git文件夹的浅层克隆,那么是否可以将子模块“下载”到工作目录中?
我尝试了git init && git submodule update --init,但这既不会初始化也不会更新子模块。.gitmodules文件在当前目录中。
更新:关于这个问题的更多背景知识:我们想使用tarballs在Travis CI上签出存储库,但是有几个人使用git子模块。”因此,“不要使用git子模块”不是一个好的答案,但答案也不一定是一些可维护的东西。我只想要一个已经签出代码并初始化了子模块的文件夹,不需要任何允许我在以后拉下更多更改的东西。

最佳答案

将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.

08-28 01:01
查看更多