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
在这里插入图片描述
点进这个版本,我们可以看到对应的提交记录是我们最新提交的一次记录
在这里插入图片描述
如果不提交指针文件的话,其他人在拉取项目的时候就拉取不到我们提交的子模块的最新代码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mingvvv

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值