Android Git submodule详解用法示例

 更新时间:2021年11月01日 14:46:53   作者:临木小屋  
项目中经常会使用到第三方的 git 库, 将三方库整合到项目中最简单的办法就是复制粘贴, 但是如果这个库升级了一个很酷炫的功能, 你要怎么整合进来呢?(其实就是 git 版的包管理器)这就是本次要介绍的 git-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内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Android制作微信添加多个图片放大图片功能

    Android制作微信添加多个图片放大图片功能

    这篇文章主要介绍了Android制作微信添加多个图片放大图片功能,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2024-03-03
  • Android中使用ListView模拟微信好友功能

    Android中使用ListView模拟微信好友功能

    这篇文章主要介绍了Android中使用ListView模拟微信好友功能,需要的朋友可以参考下
    2017-08-08
  • android开发教程之实现滑动关闭fragment示例

    android开发教程之实现滑动关闭fragment示例

    这篇文章主要介绍了android实现滑动关闭fragment示例,需要的朋友可以参考下
    2014-03-03
  • 实例详解Android Selector和Shape的用法

    实例详解Android Selector和Shape的用法

    shape和selector是Android UI设计中经常用到的,比如我们要自定义一个圆角Button,点击Button有些效果的变化,就要用到shape和selector,通过本文结合代码实例给大家详解Android Selector和Shape的用法,感兴趣的朋友一起学习吧
    2016-01-01
  • Android实现波浪线效果(xml bitmap)

    Android实现波浪线效果(xml bitmap)

    这篇文章主要介绍了Android xml bitmap实现波浪线效果,制作过程简单,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-01-01
  • Android自定义视图实现手指移动轨迹

    Android自定义视图实现手指移动轨迹

    这篇文章主要为大家详细介绍了Android自定义视图实现手指移动轨迹,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-06-06
  • Android中的Parcelable序列化对象

    Android中的Parcelable序列化对象

    这篇文章主要介绍了Android中的Parcelable序列化对象,需要的朋友可以参考下
    2016-01-01
  • Android自定义view实现圆形waveview

    Android自定义view实现圆形waveview

    这篇文章主要为大家详细介绍了Android自定义view实现圆形waveview,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-01-01
  • Android 指纹识别详解及实现方法

    Android 指纹识别详解及实现方法

    本文主要介绍Android 指纹识别的知识,这里整理了详细的资料和简单实现代码,有开发这部分的朋友可以参考下
    2016-09-09
  • Android性能之冷启动优化详析

    Android性能之冷启动优化详析

    这篇文章主要给大家介绍了关于Android性能之冷启动优化的相关资料,文中通过示例代码介绍的非常详细,对各位Android开发者们具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-11-11

最新评论