git submodule小记
这是一篇记录git submodule中存在的坑的文档
引用一个模块的命令
git submodule add http://your-submodule-url.com/ local/path
这个命令可以将一个子模块添加到当前的主仓库中(注意,这样添加的是最新版的)
运行该命令的路径,为主仓库的根目录
这个git submodule有一些坑爹的地方
首先,在云端,git submodule所引用的模块,并非永远追踪最新的模块,而是追踪被引用模块的特定版本号的内容
不管子模块如何更新,只要主模块中不修改对应的id,则永远克隆老的id
如下图所示,引用的两个problem_analyzer后面的@的编号(提交id)有所区别
下图为提交记录,可以看到主模块所引用的子模块,并非都是最新的提交ID
同时更新本地和云端的主仓库至最新的办法
首先,运行git pull以保证本地为最新代码
随后,运行git submodule update --init --recursive 下载全部的子模块代码(但可能是revision)
接着,运行git submodule update --remote --merge 下载全部的子模块的最新代码(将本地的代码全部都升级到latest,但远程的依然还不是latest)
然后,运行git diff,根据输出的数据,你可以看到有哪一些子模块的本地和云端版本不同
随后,运行git add . (注意点)以更新引用仓库的编号信息
最后,运行git commit和git push以更新云端的子模块版本号
命令如下
git pull
git submodule update --init --recursive
git submodule update --remote --merge
git diff
git add .
git commit -m "update submodule"
git push origin main
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 本地部署DeepSeek后,没有好看的交互界面怎么行!
· 趁着过年的时候手搓了一个低代码框架
· 用 C# 插值字符串处理器写一个 sscanf
· 推荐一个DeepSeek 大模型的免费 API 项目!兼容OpenAI接口!
2018-06-15 【loj6437】 【PKUSC2018】 PKUSC 计算几何