git-submodule子模块的添加、使用和删除
hugo添加主题的时候 命令如下:
git submodule add https://github.com/samrobbins85/hugo-developer-portfolio hugo-developer-portfolio
纳尼 这是个什么鬼
添加
添加子模块非常简单,命令如下:
git submodule add
其中,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 子模块名称
完成删除后,提交到仓库即可
相关文章
- git 那些事儿 —— 基于 Learn Git Branching
- 小米9刷面具和模块[通俗易懂]
- 【说站】python导入模块的过程
- uart串口通信编程_verilog调用模块端口对应方式
- 网工Python之路之netmiko模块实验(二)推送配置
- 6. 模块构建之loader执行:loader-runner@2.4.0源码分析
- 振弦采集模块参数配置工具的连接与断开
- 【maven】什么是坐标(依赖)继承与模块、web项目启动&访问
- 百度DPDK性能压测工具dperf系列-5 如何解决不支持的光模块导致dperf启动失败
- 【错误记录】Git 使用报错 ( no changes added to commit (use “git add“ and/or “git commit -a“) )
- 【Git】Git 版本管理 ( 补充提交版本 git commit --amend | 版本库提取文件 git checkout -- filename | 删除文件 git rm )
- Git 2.40 发布,包括 git jump 工具的更新、cat-file 工具的增强以及提高 Windows 上响应速度
- Linux下的Git版本控制管理实战(linux的git)
- 快速启动Linux下的Git服务(linux启动git服务)
- 连接Linux:Git的使用方法(git连接linux)
- 深入Linux:探索显示模块(linux显示模块)
- 极速学习:Linux下使用Git的基础知识(linux如何使用git)
- 搭建Linux服务器,实现Git共享(linux搭建git服务器)
- 安装linux下Git安装指南(linux下git)
- 安装Git服务器:在Linux环境下的步骤(linux安装git服务器)
- 使用子模块和子树来管理 Git 项目
- LAMP实战案例: 使用httpd的模块方式访问
- 如何在Linux上轻松部署Git?(linux下部署git)
- 如何在Linux上配置Git:简易指南(linux下git配置)
- Linux下使用Git的快速安装步骤(linux下git的安装)