欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Android Git submodule详解用法示例

程序员文章站 2022-06-24 10:15:54
目录引入创建 submodule本地配置代码提交主项目上的代码提交submodule独立项目上的代码提交删除 submodule引入假定我们有两个项目:cup 和 water,其中 cup 表示主项目...

引入

假定我们有两个项目: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

Android Git submodule详解用法示例

.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添加成功

Android 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时候是这样的

Android Git submodule详解用法示例

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

Android Git submodule详解用法示例

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

submodule独立项目上的代码提交

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

Android Git submodule详解用法示例

删除 submodule

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

执行git submodule deinit water之前

Android Git submodule详解用法示例

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

Android Git submodule详解用法示例

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

Android Git submodule详解用法示例

submodule 被移除

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