Git操作--子模块

Git子模块

1.1 简介

  在项目开发中,我们会整理出一些通用的逻辑,也可能是一下底层的工具包,这些逻辑一般情况下会用在多个项目中,那么我们如何保证这些通用逻辑在多个项目中保持一致呢,Git提供了子模块的方式来实现这个功能。
  首先我们要做的把通用逻辑放到Git版本库中进行管理,其他项目只要把这个项目当做子模块给管理起来,你就可以像引用本地文件一样,引用子模块里的变量,方法了。
  当然一个项目可以添加多个子模块,如下图所示:
子模块示意图

1.2 操作步骤

1.2.1 添加子模块
  • 情形一:首次添加子模块
    注:主项目必须已经被Git管理并且可以通过远程访问到子模块Git地址。
# 语法 
git submodule add <submodule_url> [path]

# 示例
git submodule add http://127.0.0.1/Zet/ZetEdgeUtils.git

# path参数还可以指定引用路径
git submodule add http://127.0.0.1/Zet/ZetEdgeUtils.git utils

添加完成后,通常我们可以使用git commit -m 'add submodule xxx'提交一次,表示引入了某个子模块。

  • 情形二:主项目已经添加子模块,刚刚clone到本地,此时需要对子模块进行初始化操作,如下:
git submodule update --init --recursive
1.2.2 更新子模块

当子模块更新以后,需要用户手动更新,命令如下:

# 该命令会更新项目下所有子模块,通过master分支更新
git submodule update --remote

当子模块不在master分支进行更新时,我们应该如何处理呢?

  • 方式一: 通过git命令设置子模块的更新分支
# 设置子模块的更新分支为develop
git config -f .gitmodule submodule.ZetEdgeUtils.branch develop
  • 方式二: 直接修改.gitmodules文件,指定更新分支
# 文件名: .gitmodules
[submodule "utils"]
    path = utils
    url = http://127.0.0.1/Zet/ZetEdgeUtils.git
    branch = develop
1.2.3 删除子模块

删除命令如下:

# 删除子模块
git submodule deinit <submodule_name>
# 删除子模块所在的文件夹
git rm <submodule_name>

# 示例
git submodule deinit utils
git rm utils
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值