加速 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