天天看点

Git 管理项目子模块

目录

    • 一、简介
    • 二、常用命令
    • 三、使用方法
      • 3.1 创建子模块
      • 3.2 克隆带子模块的项目
      • 3.3 更新子模块
      • 3.4 删除子模块
    • 四、参考

一、简介

项目需要拆分多个子模块,同时希望各个模块有独立的版本管理。就需要使用Git的submodule功能。

二、常用命令

git submodule add <repository> <path> 添加子模块
git clone <repository> --recursive 递归的方式克隆整个项目
git submodule init 初始化子模块
git submodule update 更新子模块(注意使用过后,子模块不在主分支上)
git submodule foreach git pull 拉取所有子模块
           

三、使用方法

3.1 创建子模块

步骤1:

创建主工程和子工程。如SubProject和SubModule。

步骤2:

将SubModule添加进SubProject成为子模块。

git submodule add https://github.com/TonyChen-9102/SubModule.git submodule
           

代码会自动生成 .gitmodules和submodule模块,提交即可。

3.2 克隆带子模块的项目

方式1:一步即可递归clone所有子模块:

git clone https://github.com/TonyChen-9102/SubProject.git --recursive 
           

方式2:分布进行

(一般在已有项目添加子模块时使用)

//clone主工程
git clone https://github.com/TonyChen-9102/SubProject.git
cd SubProject
//初始化
git submodule init
//clone子工程,注意此时子工程分支不在master
git submodule update
           

3.3 更新子模块

方式1:将所有子模块一并在各自分支更新

git submodule foreach git pull
           

方式2:cd到各个子模块目录git pull

方式3:使用submodule update(不推荐)

使用update命令后,注意子模块分支。

3.4 删除子模块

直接删除子模块。

在.gitmodules里还会有残余,可以手动清除。

四、参考

https://www.cnblogs.com/nicksheng/p/6201711.html

示例:SubProject

示例:SubModule