Git的submodule功能详解

摘要:项目的版本库在某些情况下需要引用其他版本库中的文件,例如有一套公用的代码库,可以被多个项目调用,这个公用代码库能直接放在某个项目的代码中,而是要独立为一个代码库,那么其他要调用公用的代码库该如何处理?分别把公用的代码库拷贝到各自的项目中会造成冗余,丢弃了公共代码库的维护历史,,这些显示不是好的办法,现在要了解的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目录作pull5. 移除Submodule第一步:用Delete(keep local) 将目录或文件命令从git的索引库中移除子模块目录第二步:删除物理文件第三步:删除.gitmodule文件第四步:删除.git/config的submodule配置源文件第五步:删除后,提交更改

1.前言

2.准备工作

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

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

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

1.添加子模组的步骤

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

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

第二步:查看.gitmodules的内容

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

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

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

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

第一步:克隆super主版本库

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

第二步:克隆子模组

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

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

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

推荐阅读:

Fedora通过Http Proxy下载Git

在Ubuntu Server上安装Git

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

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

Git权威指南 PDF高清中文版

抱最大的希望,为最大的努力,做最坏的打算

Git的submodule功能详解

相关文章:

你感兴趣的文章:

标签云: