【Git】(六)子模块跟随主仓库切换分支

场景

主仓库:TestGit

子模块:SubModule

分支v1.0 .gitmodules文件

bash 复制代码
[submodule "Library/SubModule"]
	path = Library/SubModule
	url = git@gitee.com:sunriver2000/SubModule.git
	branch = 1.0.0.0

分支v2.0 .gitmodules文件

bash 复制代码
[submodule "Library/SubModule"]
	path = Library/SubModule
	url = git@gitee.com:sunriver2000/SubModule.git
	branch = 2.0.0.0

问题

仓库如上场景描述,开发人员A负责开发v1.0和v2.0,因此会遇到下面这个问题。

使用以下命令检出仓库和子模块后,子模块并不能跟随主仓库切换到对应分支。例如:主仓库已切换到分支v2.0,进入子模块目录发现子模块仍停留在分支1.0.0.0。

当然,我们可以进入子模块目录输入git checkout命令手动切换到2.0.0.0。但是,如果子模块很多呢,是否有批量切换子模块分支命令存在呢?

bash 复制代码
git clone git@gitee.com:sunriver2000/TestGit.git
git submodule update --progress --init --recursive --force --remote -- "Library/SubModule"
git checkout v2.0

解法

1、在主仓库目录,使用这个命令可以批量切换子模块分支。

bash 复制代码
git submodule update --romote

使用git log命令查看分支是否已切换。

参考

https://blog.csdn.net/bglmmz/article/details/127755543

https://git-scm.com/book/en/v2/Git-Tools-Submodules

相关推荐
超梦dasgg12 分钟前
工作中 Git 完整使用指南(职场实战版)
git
Ws_17 分钟前
Git + Gerrit 第七课:stash 临时保存工作区修改
git
enjoywindstorm1 小时前
git从入门到精通
git
Adorable老犀牛5 小时前
Git 发布正式版本的一个专属的硬核功能,叫做 打标签(Tag)。
git
我先去打把游戏先7 小时前
Ubuntu虚拟机(服务器版本)Git卸载完全教程——彻底移除与清理配置
服务器·git·单片机·嵌入式硬件·物联网·ubuntu·51单片机
不做无法实现的梦~8 小时前
Git Clone 使用 Watt/Steam++ 加速时报证书错误的原因与解决方法
大数据·git·elasticsearch
黑猫警长丶9 小时前
Git 操作笔记
笔记·git
MageGojo9 小时前
Whois 域名查询 API 接入实战:用一个 GET 请求获取域名注册信息
java·git·github
黑猫警长丶9 小时前
Git 本地操作基础
git
白狐_79810 小时前
从功能开发到开源维护:一个 Python 可视化项目的 Git 分支、维护文件与 PR 流程实践
git·python·开源