许多供应商的Objective-C 库(例如,facebook-ios-sdk
)指示您将其repo 文件/目录的某个子集复制到您的Xcode 项目中。这样做的一个问题是您不知道您拥有的供应商代码的修订版本。另一个是,如果您对供应商代码进行了更改,那么通过 Git 贡献您的更改并不容易。
作为一种解决方案,我想将每个供应商库添加为我的项目 repo 的 Git 子模块,并带有一些额外的设置(例如,在.gitmodules
文件中)。这样,如果另一个人克隆了我的项目并这样做git submodule update --init
了,他们的 repo 和子模块将具有与我相同的状态,因为他们将使用我设置的相同默认设置:
- 稀疏检出:仅检出子模块的某些文件。
- 浅克隆:只克隆子模块的某个 SHA1。
如何为 Git 子模块设置上述设置?