欢迎访问移动开发之家(rcyd.net),关注移动开发教程。移动开发之家  移动开发问答|  每日更新
页面位置 : > > > 内容正文

Android Git submodule详解用法示例,

来源: 开发者 投稿于  被查看 7257 次 评论:64

Android Git submodule详解用法示例,


目录
  • 引入
  • 创建 submodule
  • 本地配置
  • 代码提交
    • 主项目上的代码提交
    • submodule独立项目上的代码提交
  • 删除 submodule

    引入

    假定我们有两个项目:Cup 和 Water,其中 Cup 表示主项目,而 Water 表示子模块项目。

    其中 Cup 的远程仓库地址为 git@github.com:SkyMissT/Cup.git
    而 Water 的远程仓库地址为 git@github.com:SkyMissT/Water.git

    接下来,我们希望在 Cup 中添加 Water ,而又保持 Water 自身独立的版本控制。

    创建 submodule

    使用 git submodule add <submodule_url> 命令可以在项目中创建一个子模块
    先 cd 到 Cup 项目的根目录,执行以下命令

    git submodule add git@github.com:SkyMissT/Water.git
    

    此时项目仓库中会多出两个文件:.gitmodules 和 water

    在这里插入图片描述

    .gitmodules中的信息

    [submodule "Water"]
    	path = Water
    	url = git@github.com:SkyMissT/Water.git
    
    

    添加后要再提交一次,远程才能有信息

    git commit -m "add submodule xxx"
    git push
    

    此时再看git库,这里的Water文件夹,点击会跳到Water的git库,至此submodule添加成功

    在这里插入图片描述

    拉取带有 submodule 的项目

    带有submodule的项目直接用 git clone git@github.com:SkyMissT/Cup.git 拉下的代码是不包含 submodule 代码的

    git clone git@github.com:SkyMissT/Cup.git --recurse-submodules
    

    这样会递归地将项目中所有子模块的代码拉取。另外一种可行的方式是,在当前主项目中执行:

    git submodule init
    git submodule update
    

    则会根据主项目的配置信息(.gitmodules),拉取更新子模块中的代码。

    本地配置

    配置 setting.gradle

    include ':Water:app'
    

    配置 build gradle

    implementation project(path: ':Water:app')
    

    代码提交

    主项目上的代码提交

    比如我们主项目与module都做了修改,commit时候是这样的

    在这里插入图片描述

    可以选择只提交一部分,也可以都选择提交,提交到他们各自的仓库,再看 push 的样子

    在这里插入图片描述

    与commit情况类似,可选择的push到远程库

    submodule独立项目上的代码提交

    与一般的代码提交一样,操作都一样。主项目中的submodule模块push后Water项目该有的全有,Water项目push后主项目也会有

    在这里插入图片描述

    删除 submodule

    //  修改 .git/config ,删除 Water 文件下所有的代码
    git submodule deinit Water
    

    执行git submodule deinit Water之前

    在这里插入图片描述

    执行git submodule deinit Water之后,submodule“Water”被移除

    在这里插入图片描述

    //  .gitmodule 文件内容清空,删除 Water 文件夹
    git rm Water
    //  提交代码
    git commit -m "rm Water"
    //  推到远程
    git push
    

    在这里插入图片描述

    submodule 被移除

    到此这篇关于Android Git submodule详解用法示例的文章就介绍到这了,更多相关Android Git submodule内容请搜索3672js教程以前的文章或继续浏览下面的相关文章希望大家以后多多支持3672js教程!

    您可能感兴趣的文章:
    • Android studio git创建与删除标签(Tag)的教程详解
    • android studio git 删除已在远程仓库的文件或文件夹方式
    • 详解androidstudio项目上传到github方法以及步骤
    • 详解Android Studio Git分支实践
    • 上传Android项目至github的解析
    • 详解Android Studio中Git的配置及协同开发

    用户评论