IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> git submodule用法(超简单体验) -> 正文阅读

[开发工具]git submodule用法(超简单体验)

前言

当我们的项目很大很复杂的时候,需要将各个模块文件进行抽离,以此来降低项目文件之间的耦合程度。(当然你项目不大不复杂也可以使用,看个人喜好啦!!!)这个时候就可以使用git submodule来对项目文件进行抽离,最终使抽离出来的文件可以单独成为一个git仓库。这样做的好处是整个主项目对抽离出来的子项目(子模块)有依赖关系,却又并不关心子项目(子模块)的内部开发流程细节。

一、使用步骤

1、首先创建一个主项目文件夹(里面包含的是我们后期开发所有需要的资源)

主项目名称:submoduleTest
子项目名称:my_common(在主项目中通过命令git submodule add 'my_common的仓库地址')

操作指示:

mkdir tt 创建文件夹tt(也可以手动创建一个文件夹)
cd tt  进入创建的文件tt(也可以利用常用的开发工具打开创建的文件,后续操作都在命令行进行哦!)
git clone git@github.com:xxx/submoduleTest.git 将远程git中创建的的主项目clone下来
cd submoduleTest 进入主项目submoduleTest
git submodule add git@github.com:xxx/my_common.git  在主项目中添加一个字项目

提示:此时项目中就会多出这个my_common文件,隶属于这个git@github.com:xxx/my_common.git仓库,是独立于主项目存在的。然后主项目中也会多一个.gitmodules文件,对应的是my_common仓库的信息。

项目结构

在这里插入图片描述

2.提交本次的修改

此时可以在主项目中提交一次代码,就完成了一个简易的包含了主子项目的demo了。
git commit -m '修改描述'	
git pull origin master
git push origin master

二、获取操作(前提是这个项目已经完成了上述第一大步的工作)

我们在最初拉取这一整个项目的时候,获取到的只有包含主项目中的最新代码,而子项目my_common中是空空如也滴。那就需要我们在最初获取项目的时候使用两个指令来完成这一系例操作的。
cd submoduleTest
git submodule init  初始化子项目
git submodule update 对子项目获取远程项目中最新的状态

提示:这个时候my_common中就可以看到远程仓库中最新的代码和更新了。那么这个时候就可以进行正常开发流程了!

三、日常开发操作

提问?在开发中如果更新代码了要怎么提交到远程仓库呢?

大可不必担心操作有多麻烦---我们只需像日常开发过程中提交代码一样!!!唯一不同的是:
	1、需要进入到子项目中对本次更新的代码进行一次提交操作,并推送到远程。
	2、再回退到主项目中,对主项目进行一次提交、推送。

注意:不管主项目中的是否有更新,只要子项目中修改过代码并提交过,主项目就需要再提交一次,因为子项目的修改是会同步到主项目中的,这样才能保证开发的一致性!

只要子项目有修改,当我们进入主项目使用 git status查看状态 都会有子项目修改的记录滴!
然后日常开发的时候,不要忘记同步去子项目提交更新一下代码就可以了。记住了!!!!!!!(因为本人在实际开发中初次接触的时候有忘过几次!)

四、总结

总的来说这个submodule还是用处挺大的!
本人的最大感触就是:可以让功能性比较强大的封装好的组件独立存在于一个文件中,放到远程仓库中独立维护。这样不管后面我们做啥项目,需要用到时候就可以直接在项目中拉取这个封装好的组件仓库拿来即用,不需要再写组件封住啥的啦(或者去其他地方复制粘帖)。

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-02-24 15:30:20  更:2022-02-24 15:31:56 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 8:24:28-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码