【开发工具】CocoaPoads结合Git Submodule

问题背景

在一个Xcode项目内使用CocoaPods来集成各个模块,需要频繁改动所依赖的Pod组件。
在改动Pod组件时,常用的做法是先将Podfile中指向的Pod路径改为本地路径,修改完成之后再切回远端路径。

将Pod组件引入方式改为CocoaPoads结合Git Submodule的方式,可以避免频繁修改Podfile中的Pod路径。

CocoaPoads结合Git Submodule

优缺点

好处:
修改组件前,不需要在Podfile里切换本地路径
修改组件时,git可告知项目仓库的状态,避免遗忘提交组件的更改
修改组件后,不需要在Podfile里修改commit id,只需要通过git命令提交submodule的commit id,更自动化
方便查看代码的commit history和每行的作者信息,不用先切换本地路径

缺点:
拉取远程仓库时,需要多执行一条submodule更新命令,不过我们可通过执行下面的配置在执行​git pull​时自动更新子模块

设置子模块

  1. 将项目中新建一个目录,设置为git submodule,指向存放Pod组件源码
git submodule add [submodule_git_url] [submodule_dir_name]
git commit -am "..."
  1. 将Podfile中指向的Pod路径改为本地路径

子模块更新

  1. 首次更新时,先执行下列命令:
git pull
git submodule update --init
  1. 再执行下列命令配置,以后在执行git pull时自动更新子模块(git v2.14及其以后版本支持):
git config --global submodule.recurse true
  1. 以后再执行git pull会自动更新submodule。

如果不执行上面的配置,较繁琐的操作是:

  1. 首次更新:
git pull
git submodule update --init
  1. 之后更新:
git pull
git submodule update

你可能感兴趣的:(Objective,C,notes)