git 使用 submodule 如何指定分支

写在前面, 作为一个前端我是不喜欢使用 submodule的, 我更喜欢 npm 包的管理方式。

首次添加子模块

git submodule add -b <branch> <remote> <path> 不指定分支就不传 -b <branch>

  • <branch> 分支名
  • <remote> 仓库地址
  • <path> 子模块路径, 也就是你的文件下载路径

示例: git submodule add -b stable https://github.com/example/submodule_repository.git submodules/my-submodule

已经添加过了子模块

可以在 .gitignore 文件里面添加字段来制定对应的分支, 例如下面。

[submodule "src/uni_modules/hex-http"]
	path = src/uni_modules/hex-http
	url = https://mygitlab.xxxx.net/hex-mobile-app/hex-modules/hex-http.git
	branch = release/prod_4.1.5

这种更改一般在项目中不会直接生效,我的尝试是将修改提交到远程仓库,在新的文件夹拉取一份父仓库代码,然后执行 git submodule init git submodule update 执行完成之后就会出现下面的日志.。
在这里插入图片描述
自动切换到了你指定的分支。

常用命令

安装子模块

git submodule init
git submodule update

或者

git submodule update --init --recursive

删除子模块(不常用)

是的,你可以使用以下命令直接从 Git 仓库中删除子模块:

git submodule deinit -f -- submodule_path
git rm -f submodule_path
rm -rf .git/modules/submodule_path

这三个命令的作用是:

  1. git submodule deinit -f -- submodule_path: 该命令会取消子模块的初始化。这将删除.git/config文件中的子模块配置。请注意,这不会删除子模块文件夹或.git/modules中的相关信息。

  2. git rm -f submodule_path: 该命令会从暂存区和工作目录中移除子模块文件夹。使用 -f 参数可以强制删除,即使工作目录中的子模块已经被修改。

  3. rm -rf .git/modules/submodule_path: 该命令会删除.git/modules目录中子模块的相关信息。

请确保在执行这些命令之前备份重要的数据,因为它们会直接影响你的仓库结构。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值