Git 子模块(Submodule)的使用

什么是Git 子模块

开发中我们可能会遇到:某个工作中的项目需要包含并使用另一个项目。 可能是第三方库,也可能是独立的,复用于多个父项目的库。 那么问题来了:你想在一个项目中使用另一个,同时又想保持两个项目的相互独立。使用Git 自带的子模块功能就可以解决这个问题。

子模块的使用命令

创建子仓库

先进入父仓库目录下,然后执行命令:

git submodule add <仓库地址> <本地路径>

<本地路径>是可选项,默认情况下,子模块会在当前目录下面,将子项目放到一个与仓库同名的目录中。如果指定了本地路径,则会把子项目放在指定的本地路径下。
执行上面命令后,在父仓库根目录增加了.gitmodule文件。

[submodule  仓库名称]
    path = 仓库名称(或指定的本地路径)
    url = 仓库地址

clone 带有子仓库的git项目

git clone 带有子仓库的git仓库地址

这个命令并不会clone下子仓库的文件,只是会克隆下.gitmodule描述文件,需要执行下面的命令拉取子仓库文件。

// 初始化本地子项目配置
$ git submodule init

// 拉取子仓库文件
$ git submodule update

或者使用组合指令:

git submodule update --init --recursive

子仓库代码的修改和更新

如果在本地修改子仓库,在主仓库执行git status,会显示子仓库有修改。需要先在子仓库提交,然后再到主仓库提交代码。
由于父仓库和子仓库是两个独立的git仓库,所以最好在子仓库的开发中单独进行git相关操作,在父仓库不对子仓库文件做修改,只进行子仓库代码的拉取,并把修改提交上去。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Git 命令行学习笔记 Git 基础 基本原理 客户端并不是只提取最新版本的文件快照,而是把代码仓库完整的镜像下来...
    sunnyghx阅读 9,391评论 0 11
  • 1.git的安装 1.1 在Windows上安装Git msysgit是Windows版的Git,从https:/...
    落魂灬阅读 14,339评论 4 54
  • 一、 Git 常用命令速查 git branch 查看本地所有分支 git status 查看当前状态 git c...
    LOVE_晴天阅读 6,835评论 0 10
  • 1,查看所有远程分支:%git branch -r 2, 拉取远程分支并创建本地分支git checkout -...
    will666阅读 6,291评论 0 18
  • 上周五单位全体师生外出研学,跟着跑着喊着整整一天,真是累得筋疲力尽。晚饭后很快就睡着了,老公也不知道咋回事他也...
    大爱无疆zgh阅读 2,880评论 1 5