git submodule详解

创建子项目

git submodule add https://gitee.com/yourName/yourProject

自定义名称

git submodule add https://gitee.com/yourName/yourProject customName

子模块拉取

对于主项目使用普通的 clone 操作并不会拉取到子模块中的实际代码。
如果希望子模块代码也获取到,一种方式是在克隆主项目的时候带上参数 --recurse-submodules,这样会递归地将项目中所有子模块的代码拉取。

git clone https://github.com/username/project-main.git --recurse-submodules

另一种方式:它会根据主项目的配置信息,拉取更新子模块中的代码。

git submodule init
git submodule update

子模块代码有更新

方式一:进入到子模块目录执行拉取操作

git pull origin master

当主项目的子项目特别多时,可能会不太方便,此时可以使用 git submodule 的一个命令 foreach 执行

git submodule foreach 'git pull origin master'

如何移除 submodule 子项目

假设子项目的路径在 apps/apps-template

  • 第一步
git submodule deinit apps/apps-template

执行后会删除 .git/config 中记录的 submodule 信息

  • 第二步
git rm apps/apps-template

执行后移除了 apps/apps-template 文件夹,并自动在 .gitmodules 中删除了配置信息

  • 第三步
rm -rf .git/modules/apps/apps-template

执行后移除了 git modules 对应的子模块信息

本地子模块有修改,强制删除,这个命令如果添加上参数 --force(-f),则子模块工作区内即使有本地的修改,也会被移除。

git submodule deinit -f apps/apps-template
git rm apps/apps-template -f
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wflynn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值