【发布时间】:2011-09-08 11:26:57
【问题描述】:
许多供应商的 Objective-C 库(例如,facebook-ios-sdk)指示您将其 repo 文件/目录的某个子集复制到您的 Xcode 项目中。这样做的一个问题是您不知道您拥有的供应商代码的修订版本。另一个是,如果您对供应商代码进行更改,那么通过 Git 贡献您的更改并不容易。
作为一种解决方案,我想将每个供应商库添加为我的项目 repo 的 Git 子模块,并带有一些额外的设置(例如,在 .gitmodules 文件中)。这样,如果另一个人克隆我的项目并执行git submodule update --init,他们的 repo 和子模块将具有与我相同的状态,因为他们将使用我设置的相同默认设置:
- 稀疏检出:只检出子模块的某些文件。
- 浅克隆:只克隆子模块的某个SHA1。
如何为 Git 子模块设置上述设置?
【问题讨论】:
-
我认为你不能这样做,但你可以提交这样的脚本:stackoverflow.com/questions/2144406/git-shallow-submodules
-
请注意
git submodule现在可以执行自定义更新:参见my answer below
标签: git github clone git-submodules sparse-checkout