8

是否可以为只有工作目录的存储库下载子模块?

如果我从 GitHub 下载存储库的 tarball,这相当于没有.git文件夹的浅克隆,是否有可能将子模块“下载”到工作目录中?

我试过git init && git submodule update --init了,但这既不初始化也不更新子模块。该.gitmodules文件位于当前目录中。

更新:关于这个问题的更多背景信息:我们想使用 tarballs 来检查Travis CI的存储库,但有几个人使用 git 子模块。因此,“不要使用 Git 子模块”不是一个好的答案,但答案也不一定是可维护的。我只想要一个已检出代码并初始化子模块的文件夹,不需要任何允许我稍后拉下更多更改的文件夹。

4

1 回答 1

2

将 wget/tar 方法与 a 结合使用git init不会帮助您初始化子模块:

之后的一切都没有追踪git init

您需要在之前添加并提交所有内容:

git submodule update --init --recursive --force

然后该git submodule命令将“工作”,但仅创建空目录。这是因为tar
文件不包含由.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.
于 2013-07-25T07:36:34.310 回答