随便撸(www.suibianlu.com)精品网站源码,织梦建站模版,游戏源代码分享平台

Git的submodule功能详解

时间:2019-04-02[Linux教程]作者:随便撸

摘要:项目的版本库在某些情况下需要引用其他版本库中的文件,例如有一套公用的代码库,可以被多个项目调用,这个公用代码库能直接放在某个项目的代码中,而是要独立为一个代码库,那么其他要调用公用的代码库该如何处理?分别把公用的代码库拷贝到各自的项目中会造成冗余,丢弃了公共代码库的维护历史,这些显示不是好的办法,现在要了解的git子模组(git submodule)就解决了这个问题。

目录

1. 前言
2. 准备工作
3. TortoiseGit上git submodule功能实现
1. 添加子模组的步骤
第一步:使用submodule add...添加子模组
第二步:查看.gitmodules的内容
2. 克隆带子模组的版本库的步骤
第一步:克隆super主版本库
第二步:克隆子模组
3. 对主Git库工作区作commit、checkout、revert、pull、push等更改Git工作区内容的操作时,查看Submodule目录下内容的效果
1) 对主Git库工作区作commit操作
2) 对主Git库工作区作checkout操作
3) 对主Git库工作区作revert操作
4) 对主Git库工作区作push操作
5) 对主Git库工作区作pull操作
4. 对submodule下的内容进行修改后commit、push,对submodule目录作pull
5. 移除Submodule
第一步:用Delete(keep local) 将目录或文件命令从git的索引库中移除子模块目录
第二步:删除物理文件
第三步:删除.gitmodule文件
第四步:删除.git/config的submodule配置源文件
第五步:删除后,提交更改

gitsubmodule功能详解

1.前言

项目的版本库在某些情况下需要引用其他版本库中的文件,例如有一套公用的代码库,可以被多个项目调用,这个公用代码库能直接放在某个项目的代码中,而是要独立为一个代码库,那么其他要调用公用的代码库该如何处理?分别把公用的代码库拷贝到各自的项目中会造成冗余,丢弃了公共代码库的维护历史,这些显示不是好的办法,现在要了解的git子模组(git submodule)就解决了这个问题。

Git 子模块功能允许你将一个Git仓库当作另外一个Git仓库的子目录。这允许你克隆另外一个仓库到你的项目中并且保持你的提交相对独立。

 

2.准备工作

首先需要两个版本库例如:

1)一个公共的版本库(例如:libA.git)

git@gitlab.szreach.com:fengyang/liba.git

2)一个引用公共版本库的主版本库(例如:super.git)

git@gitlab.szreach.com:fengyang/super.git

 

3.TortoiseGit上git submodule功能实现

 

1.添加子模组的步骤

 

第一步:使用submodule add...添加子模组

在需要作添加子模组的Git版本库中右击,选择“TortoiseGit->Submodule Add...,在“Repository:”里面输入需要添加子模组的版本库路径,在“Path:

中输入添加子模组存放的目录路径。如下图所示:

Git的submodule功能详解 第1张

此时查看需要添加子模组的Git工作区的目录结构。在根目录下多了一个.gitmodules文件,并且公共代码库被克隆到lib/lib_a目录下。

Git的submodule功能详解 第2张

 

第二步:查看.gitmodules的内容

.gitmodules的内容记录着含子模组存放的目录路径及子模组版本库的路径

Git的submodule功能详解 第3张

注:此时工作区尚未提交,完成提交后,子模组才算正式完成在需要作添加子模组的Git版本库创立

注:此主版本库(super.git)就变成了一个包含子模组的版本库。

 

2.克隆带子模组的版本库的步骤

克隆带子模组的git库,并不能自动将子模组的版本库克隆出来,对于只关心项目本身的数据,而不关心项目引用的外部项目数据的用户,这个功能非常好,数据没有冗余而且克隆的速度也很快。

 

第一步:克隆super主版本库

在工作区中克隆主主版本库后,会发现子模组的版本库并没有克隆,只有将存放子模组版本库的目录克隆下来了。

Git的submodule功能详解 第4张

 

Git的submodule功能详解 第5张----:存放子模组版本库的目录路径

 

第二步:克隆子模组

如果需要克隆出子模组形式引用的外部库,首先需要执行Submodule Update操作。

在需要作克隆子模组的Git工作区中右击,选择“TortoiseGit->Submodule Update...,点击“OK”即可。

Git的submodule功能详解 第6张

 

执行Submodule Update...操作后就会把子模组的版本库克隆下来。

 

Git的submodule功能详解 第7张

 

Git 的详细介绍:请点这里
Git 的下载地址:请点这里

推荐阅读

Fedora通过Http Proxy下载Git

在Ubuntu Server上安装Git

服务器端Git仓库的创建(Ubuntu)

Linux下Git简单使用教程(以Android为例)

Git权威指南 PDF高清中文版

本文标签:liunx教程 

转载请注明来源:Git的submodule功能详解

本文永久链接地址:https://www.suibianlu.com/11358.html

郑重声明:
本站所有内容均由互联网收集整理、网友上传,并且以计算机技术研究交流为目的,仅供大家参考、学习,不存在任何商业目的与商业用途。
若您需要商业运营或用于其他商业活动,请您购买正版授权并合法使用。 我们不承担任何技术及版权问题,且不对任何资源负法律责任。
如无法链接失效或侵犯版权,请给我们来信:admin#suibianlu.com

Top