加速 git submodule
iOS 中有一个第三方数据库封装:GRDB。该组件使用了 git submodule 来依赖 SQLiteLib。
这个时候如果我们只使用之前介绍过的 设置 SPM Mirror,那么这个子模块就会是一个漏网之鱼。
那么怎么为这个子模块设置镜像呢?我们可以使用 git config --global url.[New].insteadOf [Old] 命令来替换 url 中的某个部分。可以参考:Easier Git Repository Cloning with insteadOf
--global参数是必须的,spm 的加载读取的是~/.gitconfig文件,不会读取项目根目录下的.git/config文件。所以这个替换必须设置为全局替换的。
New 是镜像 url,而 Old 是 github url,设置后我们可以通过 git config --global -l 或者 git config --global -e 命令来查看是否设置成功。
设置成功后不论是执行 git clone 或者 git submodule update --init,都会通过镜像 url 去执行了。
如果你想在团队项目中共享这份配置,那么可以将地址存储到一个文件中,比如像下面这样:
# .gitconfig-insteadof
[url "https://github.com/swiftlyfalling/SQLiteLib.git"]
insteadOf = https://your-organize-git/SQLiteLib.git
然后通过 git config --global include.path .gitconfig-insteadof 将这个配置文件添加到 ~/.gitconfig 文件中即可。
添加后 ~/.gitconfig 内容会如下所示:
...
[include]
path = /Users/.../project/.gitconfig-insteadof