首页 > 其他分享 >git中submodule子模块的添加、使用和删除

git中submodule子模块的添加、使用和删除

时间:2023-01-05 18:00:53浏览次数:41  
标签: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
1
2
或:

git submodule update --init --recursive
1
执行后,子模块目录下就有了源码,再执行相应的makefile即可。

子模块的更新
子模块的维护者提交了更新后,使用子模块的项目必须手动更新才能包含最新的提交。

在项目中,进入到子模块目录下,执行 git pull更新,查看git log查看相应提交。

完成后返回到项目目录,可以看到子模块有待提交的更新,使用git add,提交即可。

删除子模块
有时子模块的项目维护地址发生了变化,或者需要替换子模块,就需要删除原有的子模块。

删除子模块较复杂,步骤如下:

rm -rf 子模块目录 删除子模块目录及源码
vi .gitmodules 删除项目目录下.gitmodules文件中子模块相关条目
vi .git/config 删除配置项中子模块相关条目
rm .git/module/* 删除模块下的子模块目录,每个子模块对应一个目录,注意只删除对应的子模块目录即可
执行完成后,再执行添加子模块命令即可,如果仍然报错,执行如下:

git rm --cached 子模块名称

完成删除后,提交到仓库即可。

标签:git,模块,删除,submodule,提交,目录
From: https://www.cnblogs.com/kn-zheng/p/17028487.html

相关文章

  • 手把手教你把 Git 子模块更新到主项目
    本文以 skywalking-rocketbot-ui子模块合并到 skywalking 为例,手把手教你如何把Git子模块更新到主项目中去。首先,把fork的skywalking项目克隆到本地:OneMoreMINGW64......
  • bs4 模块
    爬虫之bs4模块我们在编写一些业务时需要从html页面上获取到用户输入的内容。比如说文章内容。其实底层是在编写html代码,用户输入的时候看着是字其实是标签里包含输入的文......
  • Github应用最广泛的开源项目
    ​ Github自从2008年上线以来,发展迅速,目前已经成为最流行的代码托管站点。在Github中,开发者除了可以托管自己的项目源码外,还可以Watch(关注)、Star(加星)、Fork(复制一份)、Pull......
  • git 建立远程连接
    将本地仓库和远程仓库建立连接:gitremoteaddorigingit@github.com/codes/code.git修改远程仓库地址gitremote-v//查看修改前的仓库gitremoteset-urlorig......
  • zabbix添加二华设备光模块收发光功率
    在zabbix服务器中执行:snmpwalk-v2c-cro字符串设备ip1.3.6.1.4.1.25506.2.70.1.1.1.12 |more 将列出所有端口的收光功率,获得的数值需要除以100才是在设备上disp......
  • 基于OpenCV DNN模块给黑白老照片上色(附Python/C++源码)
    导读本文给大家分享一个用OpenCVDNN模块给黑白老照片上色的实例,并给出Python和C++版本源码。 背景介绍    这个项目是基于在加利福尼亚大学,伯克利,RichardZhang,Phil......
  • Centos7搭建Gitlab服务器
    GitLab介绍GitLab是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的Web服务。官方网站:https://about.gitlab.com/安装配置需求:2.5GB的......
  • 在3568开发板上开发外设模块——竟如此简单!
    为满足客户的多元化需求,迅为在原有ov5695摄像头和5G通信模块的基础上,新增了以下选配模块。 针对这些模块,我们编写了9个实验做成了《itop-3568开发板驱动实验手册》,从实验原......
  • 转 Git配置SSH
    Git配置SSHhttp://t.csdn.cn/TT8QC林家小猪已于2022-05-2511:43:46修改26915收藏43分类专栏:软件安装文章标签:gitssh数据仓库版权华为云开发者联盟该内容已......
  • GitHub优秀移动开源项目大集合
    ​​GitHub上最火的40个Android开源项目(一)​​​​GitHub上最火的40个Android开源项目(二)​​​​GitHub上最火的74个Android开源项目(三)​​​​GitHub上最火的40个iOS开源项......