git中submodule子模块的添加、使用和删除
背景
项目中经常使用别人维护的模块,在git中使用子模块的功能能够大大提高开发效率。
使用子模块后,不必负责子模块的维护,只需要在必要的时候同步更新子模块即可。
本文主要讲解子模块相关的基础命令,详细使用请参考man page。
子模块的添加
添加子模块非常简单,命令如下:
git submodule add <url> <path>
其中,url为子模块的路径,path为该子模块存储的目录路径。
执行成功后,git status会看到项目中修改了.gitmodules,并增加了一个新文件(为刚刚添加的路径)
git diff --cached查看修改内容可以看到增加了子模块,并且新文件下为子模块的提交hash摘要
git commit提交即完成子模块的添加
子模块的使用
克隆项目后,默认子模块目录下无任何内容。需要在项目根目录执行如下命令完成子模块的下载:
git submodule init
git submodule update
git submodule update --init --recursive
执行后,子模块目录下就有了源码,再执行相应的makefile即可。
子模块的更新
子模块的维护者提交了更新后,使用子模块的项目必须手动更新才能包含最新的提交。
在项目中,进入到子模块目录下,执行 git pull更新,查看git log查看相应提交。
完成后返回到项目目录,可以看到子模块有待提交的更新,使用git add,提交即可。
删除子模块
有时子模块的项目维护地址发生了变化,或者需要替换子模块,就需要删除原有的子模块。
删除子模块较复杂,步骤如下:
rm -rf 子模块目录 删除子模块目录及源码
vi .gitmodules 删除项目目录下.gitmodules文件中子模块相关条目
vi .git/config 删除配置项中子模块相关条目
rm .git/module/* 删除模块下的子模块目录,每个子模块对应一个目录,注意只删除对应的子模块目录即可
执行完成后,再执行添加子模块命令即可,如果仍然报错,执行如下:
git rm --cached 子模块名称
完成删除后,提交到仓库即可。
————————————————
版权声明:本文为CSDN博主「guotianqing」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/guotianqing/article/details/82391665
git中submodule子模块的添加、使用和删除相关推荐
- Git中submodule的使用
背景 面对比较复杂的项目,我们有可能会将代码根据功能拆解成不同的子模块.主项目对子模块有依赖关系,却又并不关心子模块的内部开发流程细节. 这种情况下,通常不会把所有源码都放在同一个 Git 仓库中. ...
- 使用qtcreator中的git_Git中submodule的使用
背景 面对比较复杂的项目,我们有可能会将代码根据功能拆解成不同的子模块.主项目对子模块有依赖关系,却又并不关心子模块的内部开发流程细节. 这种情况下,通常不会把所有源码都放在同一个 Git 仓库中. ...
- git子仓库管理使用(添加子仓库,删除子仓库,更新子仓库)
背景 项目中经常使用别人维护的模块,在git中使用子模块的功能能够大大提高开发效率. 使用子模块后,不必负责子模块的维护,只需要在必要的时候同步更新子模块即可. 例如一个使用了子仓库的代码库,如何获取 ...
- 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子模块的使用
1. Git submodule 1.1. submodule常用命令 在项目中的.gitmodules文件中查看当前submodule设置 git clone <repository> ...
- 克隆git文件_如何在Git中克隆,修改,添加和删除文件
克隆git文件 在本系列有关Git入门的第一篇文章中 ,我们创建了一个简单的Git存储库,并通过将其连接到计算机将文件添加到其中. 在本文中,我们将学习有关Git的其他一些知识,即如何在Git存储库中 ...
- idea中,发布项目到Git中,当时按照这样的流程添加Git,然后push,提示:push to origin/master war rejected“
idea中,发布项目到Git中,当时按照这样的流程添加Git,然后push,提示:push to origin/master war rejected". 大概原因是:初始化项目时,远程仓库 ...
最新文章
- 这个新方法,竟然能检测 Python 代码的好坏!
- 牛客网 Wannafly挑战赛8 A.小Y和小B睡觉觉
- vue3中ref、reactive、shallowRef、 shallowReactive、toRaw、unref、toRef、toRefs、customRef使用与区别
- Java常见面试题汇总
- 从单体到Flink:一文读懂数据架构的演变
- 服务器物理链路,【交换机在江湖对接案例】配置堆叠系统对接NLB服务器群集示例(通过物理链路环回方法)...
- 计算机音乐lover88,Lover Boy 88-Higher Brothers/Phum Viphurit
- 【2020模拟考试T1】【PAT乙】1031 查验身份证 (15分)模拟
- [转载] 把数据对象转成字符串_python入门基础培训教程,Python 字符串学习
- Vulkan 学习笔记 day01 vulkan visuall studio配置测试
- php的get和post,PHP中GET和POST区别
- 985硕士程序员年薪80万!邻居眼中不如一个老师?你怎么看?
- html swf转mp4,swf怎么转换成mp4 swf视频转换成mp4格式没有声音|转换成MP4格式没有画面...
- 少林禅医:姜是无上养生物,谨慎使用大智慧
- 特长生模拟——买装备
- HBO解密:他们为什么要开发VR版《西部世界》
- wamp5如何配置多个自定义域名访问本地不同的项目
- 【MySQL】创建数据表
- 现代诗与古典传统的关系
- [Android]listview图文混排
热门文章
- 免费开源的云尚发卡V1.5.7
- 英语四级常考100个短语
- 未来电竞旗舰:iQOO 8系列售价3799元起
- npm install 报错:found XXX vulnerabilities (XXX low, X moderate),run `npm audit fix` to fix them, or `
- 机器学习入门 --- 贝叶斯 - 中文新闻分类任务
- GitHub 上排名前 100 的 Android 开源库介绍
- 赤霉素3β-羟化酶的下调增强了大豆的光合作用并提高了种子产量
- Ubuntu操作系统安装中文输入法
- 一致性哈希算法原理详解
- 设计模式 访问者模式