Git -- submoudule子模块使用
文章目录
- 子模块的作用
- 添加子模块
- 拉取带子模块的项目
- 修改子模块代码
子模块的作用
通常情况下,我们做项目时会有几个业务功能区分比较明确的模块,比如简单来说,一个项目我们可以分为认证授权模块、工具类模块、常规业务模块。
而像认证授权模块、工具类模块这些公用模块会有很多项目去使用,所以这些模块不能放在某一个项目里面,而应该是一个单独的仓库,这个时候就可以使用 git submoudule 去引用和管理公用模块。
引用子模块的定义就是,git 子模块允许你将一个 git 仓库作为另一个 git 仓库的子目录。能让你将另一个仓库克隆到自己的项目中,同时还保持提交的独立。子模块适用于主项目对子模块有依赖关系,却又并不关心子模块的内部开发的流程和细节;适用于整体复用的情况;
添加子模块
首先拉取主项目到本地
git clone -b origin/master http://xxx.xx.xx.xxx/cnaec/server.git
cd server
git pull
然后添加子模块,并推送到远程仓库
这里我添加了两个模块
git submodule add http://xxx.xx.xx.xxx/base-moudule/auth-moudule2.git
git submodule add http://xxx.xx.xx.xxx/base-moudule/utils-moudule.git
git add.
git commit -m "add submodules"
git push
添加完之后,项目里面会生成一个 .gitmodules 文件,里面是子模块的地址配置,有这个就表示子模块添加成功了。
更新子模块代码
刚添加完的子模块是一个空文件夹,里面没有内容,我们需要更新一下子模块项目
git submodule init
git submodule update
拉取带子模块的项目
第一种方法:
git clone http://xxx.xx.xx.xxx/cnaec/server.git --recurse-submodules
第二种方法:
git clone http://xxx.xx.xx.xxx/cnaec/server.git
cd server
git submodule init
git submodule update
修改子模块代码
当我们拉取了主项目和子模块并修改子模块内容,提交子模块的时候主项目会生成一个新的指针字符串,指向当前子模块的提交记录。
切记,子模块做了修改之后,这个文件提交的时候一定不要漏了。每一个子模块都有一个对应的这样的文件
我们看一下现在的仓库信息 auth-moudule 显示版本是 65638680
点进这个版本,我们可以看到对应的提交记录是我们最新提交的一次记录
如果不提交指针文件的话,其他人在拉取项目的时候就拉取不到我们提交的子模块的最新代码。
Git -- submoudule子模块使用相关推荐
- Git 工具 - 子模块 外部引用
from:https://git-scm.com/book/zh/v1/Git-工具-子模块 Git 工具 - 子模块 子模块 经常有这样的事情,当你在一个项目上工作时,你需要在其中使用另外一个项目. ...
- Git工具 - 子模块
#1.子模块使用场景 有种情况我们经常会遇到:某个工作中的项目需要包含并使用另一个项目. 也许是第三方库,或者你独立开发的,用于多个父项目的库. 现在问题来了:你想要把它们当做两个独立的项目,同时又想 ...
- Git submodule子模块的使用
1. Git submodule 1.1. submodule常用命令 在项目中的.gitmodules文件中查看当前submodule设置 git clone <repository> ...
- 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下载子模块命令git clone --recursive和git submodule update --init
目录 方法一:git clone --recursive 方法二:git submodule update --init 有时github上的工程可能会包含一些子模块,例如 这时候如果你只是用下面的命 ...
- Git 合并子模块改动没有出现 ‘merge following commits not found’
出现的问题 在<Pro Git>的第7章11节-- 合并子模块改动 中,输入git pull 命令,并没有出现如下书中的结果 $ git pull remote: Counting obj ...
- vue配置git的子模块
在vue的模块需要调用许多公共组件,在公共组件之后会需要不断的更新以及分组做,这时候可以利用git的方式更新组件所在位置 [submodule "src/component/common&q ...
最新文章
- linkedHashMap源码解析(JDK1.8)
- vue3源码中的最长递增子序列
- 【图像处理】——图像内插法
- 和不安全的Android说再见,Google为它添加新铠甲
- 还不理解“分布式事务”?这篇给你讲清楚!
- BZOJ3376: [Usaco2004 Open]Cube Stacking 方块游戏
- 一句话木马:ASPX篇
- python简明教程电子书下载_python简明教程中文pdf下载-Python入门级电子书完整免费版-东坡下载...
- jsp购物车和mysql_jsp购物车的代码和数据库
- 10月2场CMDN Club活动专题、视频、资源分享
- 人事考勤系统服务器端,考勤管理,考勤管理系统,人事考勤管理系统,考勤系统 - 新开普(NewCapec)...
- 基于java实现的一个电话号码程序,3位,5位,7位,8位,11位
- 数据保存(永久保存)方式
- WIN2008R2修改远程桌面端口(不重启系统)
- 7.java IO流
- BH1750_数字16位串行输出型环境光传感器
- Brenda-利用SOAP API访问Brenda及本地保存
- 如何做番茄炖牛腩——hadoop理解
- ubuntu14.04编译ijkplayer备忘
- Android开发 - 线程和服务