git submodule简单使用方法

前言

git submodule 作为一种方便的多仓复用方法,在日常开发中十分关键。

特别是删除部分的流程比较复杂,记性不太好所以记以此文备忘。

正文

添加 submodule
	git submodule add -b master git-repo-url path 
  1. 使用 -b 可以指定跟踪分支

  2. git-repo-url 可以是 ssh 形式或者 url ,不同的链接形式对鉴权要求不同,url 的要求在全局配置 password,ssh 的需要配置密钥,这可能会对一同开发的协作者产生影响

  3. path 即为放在当前 repo 中的文件位置

example:

	git submodule add -b master https://github.com/opq-osc/OPQ.wiki.git docs/opq-wiki

这步操作就可以把这个 wiki 仓库放到当前仓库的 ./docs/opq-wiki 位置来复用。

更新 submodule

拿到一个有 submodule 的项目需要先把 submodule 初始化,也就是拉下来:

	git submodule update --init --recursive

这一步等价于递归进行 git submodule init && git submodule update

其中 git submodule update 可以带参数,详见 update 官方文档

submodule 有个坏处是当子仓更新时,你需要把主仓的 submodule 指针指向最新的子仓 commit 后再构建一遍才能在主项目里生效,更新命令:

	git submodule update --remote

建议增加 scripts 方便使用:

// package.json
 "scripts": {
   "submodule:init": "git submodule update --init --recursive",
   "submodule:update": "git submodule update --remote"
 }
删除 submodule
  1. 先 deinit 掉该 submodule:

    	git submodule deinit -f path
    
  2. 再删掉该文件夹

    	rm -rf path
    
  3. 然后删除项目根目录的 .gitsubmodules (如果有多个 submodule ,就把你要删除的那个项目信息删掉)

  4. 确认 ./.git/config 文件有没有 submodule 信息,有的话删除

  5. 删除 ./.git/module 文件夹,如果有多个 submodule,删掉里面对应的文件夹即可

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值