Android Git submodule詳解用法示例
引入
假定我們有兩個(gè)項(xiàng)目:Cup 和 Water,其中 Cup 表示主項(xiàng)目,而 Water 表示子模塊項(xiàng)目。
其中 Cup 的遠(yuǎn)程倉庫地址為 git@github.com:SkyMissT/Cup.git
而 Water 的遠(yuǎn)程倉庫地址為 git@github.com:SkyMissT/Water.git
接下來,我們希望在 Cup 中添加 Water ,而又保持 Water 自身獨(dú)立的版本控制。
創(chuàng)建 submodule
使用 git submodule add <submodule_url> 命令可以在項(xiàng)目中創(chuàng)建一個(gè)子模塊
先 cd 到 Cup 項(xiàng)目的根目錄,執(zhí)行以下命令
git submodule add git@github.com:SkyMissT/Water.git
此時(shí)項(xiàng)目倉庫中會(huì)多出兩個(gè)文件:.gitmodules 和 water

.gitmodules中的信息
[submodule "Water"] path = Water url = git@github.com:SkyMissT/Water.git
添加后要再提交一次,遠(yuǎn)程才能有信息
git commit -m "add submodule xxx" git push
此時(shí)再看git庫,這里的Water文件夾,點(diǎn)擊會(huì)跳到Water的git庫,至此submodule添加成功

拉取帶有 submodule 的項(xiàng)目
帶有submodule的項(xiàng)目直接用 git clone git@github.com:SkyMissT/Cup.git 拉下的代碼是不包含 submodule 代碼的
git clone git@github.com:SkyMissT/Cup.git --recurse-submodules
這樣會(huì)遞歸地將項(xiàng)目中所有子模塊的代碼拉取。另外一種可行的方式是,在當(dāng)前主項(xiàng)目中執(zhí)行:
git submodule init git submodule update
則會(huì)根據(jù)主項(xiàng)目的配置信息(.gitmodules),拉取更新子模塊中的代碼。
本地配置
配置 setting.gradle
include ':Water:app'
配置 build gradle
implementation project(path: ':Water:app')
代碼提交
主項(xiàng)目上的代碼提交
比如我們主項(xiàng)目與module都做了修改,commit時(shí)候是這樣的

可以選擇只提交一部分,也可以都選擇提交,提交到他們各自的倉庫,再看 push 的樣子

與commit情況類似,可選擇的push到遠(yuǎn)程庫
submodule獨(dú)立項(xiàng)目上的代碼提交
與一般的代碼提交一樣,操作都一樣。主項(xiàng)目中的submodule模塊push后Water項(xiàng)目該有的全有,Water項(xiàng)目push后主項(xiàng)目也會(huì)有

刪除 submodule
// 修改 .git/config ,刪除 Water 文件下所有的代碼 git submodule deinit Water
執(zhí)行git submodule deinit Water之前

執(zhí)行git submodule deinit Water之后,submodule“Water”被移除

// .gitmodule 文件內(nèi)容清空,刪除 Water 文件夾 git rm Water // 提交代碼 git commit -m "rm Water" // 推到遠(yuǎn)程 git push

submodule 被移除
到此這篇關(guān)于Android Git submodule詳解用法示例的文章就介紹到這了,更多相關(guān)Android Git submodule內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Android自定義豎排TextView實(shí)現(xiàn)實(shí)例
這篇文章主要介紹了Android自定義豎排TextView實(shí)現(xiàn)實(shí)例的相關(guān)資料,需要的朋友可以參考下2017-05-05
Android中EditText實(shí)現(xiàn)不可編輯解決辦法
這篇文章主要介紹了Android中EditText實(shí)現(xiàn)不可編輯解決辦法,需要的朋友可以參考下2014-12-12
Android 使用AsyncTask實(shí)現(xiàn)斷點(diǎn)續(xù)傳
這篇文章主要介紹了Android 使用AsyncTask實(shí)現(xiàn)斷點(diǎn)續(xù)傳的實(shí)例代碼,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2018-05-05
Android?debug包運(yùn)行正常release包崩潰的解決辦法
這篇文章主要介紹了Android?debug包運(yùn)行正常,release包崩潰解決辦法,文中通過代碼示例介紹的非常詳細(xì),對(duì)大家解決問題有一定的幫助,需要的朋友可以參考下2024-04-04
Android簡單的短信驗(yàn)證功能的實(shí)現(xiàn)代碼
這篇文章主要介紹了Android簡單的短信驗(yàn)證功能的實(shí)現(xiàn)代碼,本文是小編使用sdk過程的一些心得,需要的朋友可以參考下2018-07-07
Android學(xué)習(xí)教程之2D繪圖基礎(chǔ)及繪制太極圖
這篇文章主要給大家介紹了Android中2D繪圖基礎(chǔ)的相關(guān)資料,文中介紹了繪圖的基礎(chǔ)內(nèi)容,以及通過Canvas和Paint實(shí)現(xiàn)繪制太極圖的詳細(xì)過程,對(duì)各位Android新手開發(fā)者們具有一定的參考價(jià)值,需要的朋友下面來一起看看吧。2017-04-04

