Android 项目 多 Git repository 管理

需求场景:

实际开发项目中,一个项目有依赖多个 Module 已属正常情况。其中会有些 Module 可能会在多个项目中通用。所以在进行 Git 仓库管理的时候,希望可以单独管理这些 Module。

解决方法

本人只使用了 git submodule 的方式。即支持在 Terminal 命令行操作,也支持在 SourceTree 内直接图形化操作。十分的便捷。还有其他的方式,如 git subtree / git slave / google repo

具体步骤:

实现 RepoLibBase Module 的单独 git 管理

1. 创建项目 RepoDemo,可跳过

Demo示例

2. 初始化 RepoLibBase 并提交到远程仓库,如果已有远程子 Module 直接跳到下一步

利用 AS(AndroidStudio) 的 Terminal 操作


git 命令操作位置
  1. 先创建远程仓库,在 Github 上或 其他的平台上
    e.g. 创建成功后的 RepoLibBase 的仓库地址为:https://[host]/[path]/RepoLibBase.git
  2. 进入到 RepoLibBase 的目录下 cd RepoLibBase
  3. 初始化本地仓库 git init
  4. 自己添加 ignore 规则,然后提交文件 git add -A 全部添加 或 自己逐个添加。
  5. 提交文件到本地 git commit -m "first init"
  6. push 到远程 git 仓库
 git remote add origin https://[host]/[path]/RepoLibBase.git
 git push -u origin master 

3. 初始化 RepoDemo 并将 RepoLibBase 导入

利用 AS Terminal 操作。

  1. 首先切回到项目根目录 \RepoDemo
  2. 输入命令:git submodule add https://[host]/[path]/RepoLibBase.git
    即可从远程仓库 将 RepoLibBase 导入到该项目中。
    上面命令后可以指定导入目录,如 git submodule add https://[host]/[path]/RepoLibBase.git app\libs 就是导入到 RepoDemo\app\libs 目录下。
    注意:如果已经有了(按照上面操作的例子)可能会导入失败,把已经存在的删掉就好了。
  3. 在项目下的 settings.gradle 文件中加入 该 Module
    添加 Module
  4. sync 或 rebuild 项目,后应该就可以识别,并添加依赖了。
  5. 之后在项目 RepoDemo 中用 git 命令行或用 SourceTree 进行 pull 或 push 代码,两个仓库的代码都不会相互干扰。
    如果想在该项目中利用 git 命令操作子项目,必须进入该 Module 的目录下操作。

重点就在 git submodule add 这个命令


在 SourceTree 中也可以添加此项目,也可以识别 submodule 进行图形化管理。很是方便。
SourceTree 界面

双击 RepoLibBase 即可以直接进入子模块的项目管理页面,进行代码的推送或提交管理。

RepoLibBase 管理页
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,496评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,407评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,632评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,180评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,198评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,165评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,052评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,910评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,324评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,542评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,711评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,424评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,017评论 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,668评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,823评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,722评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,611评论 2 353

推荐阅读更多精彩内容

  • git branch 查看本地所有分支 git status 查看当前状态 git commit 提交 git b...
    猿万阅读 5,055评论 1 45
  • 配置 首先是配置帐号信息 ssh -T git@github.com#登陆github 修改项目中的个人信息 1 ...
    rochuan阅读 722评论 1 1
  • 诗经被引用到烂的名句:死生契阔,与子成说,执子之手,与子偕老。 听起来很美好,然而三观不正如我,总觉得若有情比金坚...
    饭叨C阅读 714评论 0 2
  • 我真的气死了 气死我了 气死了
    小黄穿马甲阅读 141评论 0 0
  • 忙碌的一周终于结束了,坐在暖暖的初夏阳光下,慢慢享受惬意的早餐。一切的嘈杂喧嚣都关在门外,一切的凡尘俗事都抛去九霄...
    美厨小妮子阅读 297评论 1 1