iOS模块化之git

子模块submodule

submodule项目和父项目本质上是两个独立的git仓库,只是父项目存储了它依赖的submodule项目的版本号信息。

  • 添加子模块

    git submodule add <url> <path>
    

其中,url为子模块的路径,path为该子模块存储的目录路径。

  • 克隆含有子模块的项目
    当一个git项目包含子模块时,直接克隆下来的子模块目录里面是空的。
    要克隆子模块需要执行下面的步骤:
    1、初始化本地子模块配置文件

    git submodule init
    

2、更新项目,抓取子模块内容

git submodule update
  • 需要注意的地方
    确保每次提交的时候,子模块使用的是对应的版本
子树subtree
  • 添加子树

    git subtree add --prefix=<subtree name> --squash  <subtree name> <branch name>
    

通过subtree添加子模块,–squash可省略,其功能是只有最新的提交记录被引入,去掉后则是引入所有历史提交记录

  • 子树更新

    git subtree pull -P <subtree name>  <subtree name>  <branch name>
    
  • 子树提交

    git subtree push --prefix=<subtree name> <subtree name> <branch name>
    
不同之处

git submodule类似于引用,父仓库引用了子仓库,两者的更新是独立的;
而git subtree类似于拷贝,子树的修改可以在父仓库的未暂存区看到。

参考:https://blog.csdn.net/liusf1993/article/details/72765131

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容