Git submodule子模块的使用
1. Git submodule
1.1. submodule常用命令
在项目中的.gitmodules文件中查看当前submodule设置
git clone <repository> --recursive #递归的方式克隆整个项目
git submodule add <repository> <path> #添加子模块
#示例:git submodule add git://xxxxx.git findernamegit submodule init #初始化子模块
git submodule update --init --recursive #初始化并更新子模块
git submodule foreach git pull #拉取所有子模块
git pull --recurse-submodules #拉取所有子模块中的依赖项
git submodule sync #将新的URL同步更新,该步骤适用于git submodule add或修改.gitmodules文件之后
git submodule status third_party/ModuleA #查看子模块状态,即该子模块切入的提交节点位置,即某HASH值#删除子模块,然后删除对应资源库所有文件
git rm --cached ModuleA
rm -rf moduleAgit submodule set-url third_party/ModuleA https://XXX.git #,更新子模块URL,该功能在1.8.3.1以上版本
git submodule set-branch --branch dev third_party/ModuleA #设置子模块项目采用的分支,该功能在1.8.3.1以上版本
若希望每次clone拉取新的submodule到指定分支指定节点,需要在提交时将子模块checkout到指定指针位置,然后提交该子模块所在目录git add third_party/ModuleA;git commit xxx;
(其实是提交子模块中的.git所在commit指针中位置HASH值e6fd72ad).
1.1. 删除和更新子模块
删除一个submodule
1.删除 .gitsubmodule中对应submodule的条目
2.删除 .git/config 中对应submodule的条目
3.执行 git rm --cached {submodule_path}。注意,路径不要加后面的“/”。例如:你的submodule保存在 supports/libs/websocket/ 目录。执行命令为:git rm --cached supports/libs/websocket更新submodule的URL
1.更新 .gitsubmodule中对应submodule的条目URL
2.更新 .git/config 中对应submodule的条目的URL
3.执行 git submodule sync
2. 问题解决
2.1.引用不是一个树
fatal: 引用不是一个树:a27a43eafa8f4dd514e89984f5394260a36ea4f6
无法在子模组路径 ‘src/lib/ecl’ 中检出 ‘a27a43eafa8f4dd514e89984f5394260a36ea4f6’
#解决方法为git添加子模块的位置:
git add src/lib/ecl
#下载子模块命令为:
git submodule update --init --recursive
2.2. Needed a single revision
fatal: Needed a single revision
将出错的文件夹删除后,重新执行git submodule update命令
2.3. 未在.gitmodules中发现路径’boringssl’的子模组映射
#虽然优化,但是没有优化删除缓存中库
git rm --cached boringssl
参考文章 GIT Submodule的使用
参考文章 Git Submodule管理项目子模块
Git submodule子模块的使用相关推荐
- Git submodule子模块
1. 子模块的添加 git submodule add <url> <path> 其中,url为子模块的路径,path为该子模块存储的目录路径. 比如: git submodu ...
- git submodule 子模块的管理和使用
子模块前面有一个-,说明子模块文件还未检入(空文件夹). 初始化子模块 $ git submodule init Submodule 'assets' (https://github.com/maon ...
- git submodule子模块管理
有种情况我们经常会遇到:某个工作中的项目需要包含并使用另一个项目. 也许是第三方库,或者你独立开发的,用于多个父项目的库. 现在问题来了:你想要把它们当做两个独立的项目,同时又想在一个项目中使用另一个 ...
- git submodule获取子模块
从github上获取工程,经常会出现依赖其它github上代码的情况,这时如果每一个都手动下载,实在太麻烦了.其实git给我们提供了相互引用的功能,可以在工程中直接引入其它的代码库,这样可以保证每次使 ...
- Git Submodule管理项目子模块
使用场景 当项目越来越庞大之后,不可避免的要拆分成多个子模块,我们希望各个子模块有独立的版本管理,并且由专门的人去维护,这时候我们就要用到git的submodule功能. 常用命令 git clone ...
- 【git】Git Submodule管理项目子模块
文章目录 1.概述 2. 使用场景 3. 如何使用 3.1. 创建带子模块的版本库 3.2. 克隆带子模块的版本库 3.3. 修改子模块 3.4. 更新子模块 3.5. 删除子模块 4.删除子模块 5 ...
- git submodule add子模块的添加,--recurse-submodules递归克隆子项目
git submodule add 可将其他仓库作为本仓库的子模块,并保持父项目和子项目相互独立.面对比较复杂的项目时,经常会用到. 语法 将URL的仓库作为本仓库的子模块.执行后,git会将UR ...
- git中submodule子模块的添加、使用和删除
背景 项目中经常使用别人维护的模块,在git中使用子模块的功能能够大大提高开发效率. 使用子模块后,不必负责子模块的维护,只需要在必要的时候同步更新子模块即可. 本文主要讲解子模块相关的基础命令,详细 ...
- git下载子模块命令git clone --recursive和git submodule update --init
目录 方法一:git clone --recursive 方法二:git submodule update --init 有时github上的工程可能会包含一些子模块,例如 这时候如果你只是用下面的命 ...
最新文章
- 资讯丨谷歌 AutoML AI系统写的机器学习代码,完爆程序员
- 2011软考软件设计师:C语言代码规范问题(1
- 最近用到的几种前后端交互方式
- mysql 生明变量_MySql中的变量定义
- some demos
- 编程寓言:两位新手正讨论常用快捷键,路边乞丐直接说出答案!
- 2020-02-24
- 后台实现查找附近的人接口
- 手脱ASPack v2.12
- vue搭配vux-ui框架
- 【12306刷票必备!!!】12306订票助手----无所不能的谷歌浏览器chrome插件
- OBD数据过滤之:变速箱的里程能不能改
- win10的怎么调计算机亮度,Win10系统调节屏幕亮度的三种方法【图文】
- Postman----打开postman console控制台,查看接口测试打印log
- dellR730装机教程
- 阿里云李飞飞:中国数据库的时与势
- 我的世界java边境之地_我的世界:MC人迹罕至的6种“边境之地”,最后1种让人后背发凉!...
- OSG 中 常用的 Uniforms
- Shade4PointLights
- C语言求1到20的阶乘之和
热门文章
- python电影数据爬取的代码_Python3.5:爬取网站上电影数据
- 系统集成项目管理工程师2022年上半年下午案例分析题及答案
- 百面机器学习—7.K均值算法、EM算法与高斯混合模型要点总结
- 河南省考研计算机学校,河南哪个学校的研究生容易考
- 聊聊二十七八岁,聊二十一二岁
- 基于虚拟机高可用redis集群搭建
- Task 5: Homework(附代码)(Stanford CS224N NLP with Deep Learning Winter 2019)
- 数据库查询的实现:B树与磁盘I/O算法设计
- CentOS 安装 Screen【在线 + 离线】
- 狐火 不兼容event.srcElement 解决方法