git submodule 用法记录

45 阅读1分钟

最近,有一些项目用到了相同的模块,便想着该如何能够复用。类似前端的私有 npm 库之类的,有没有更好的解决方法呢?最后一通研究下来,得出 git submodule 是比较适合的解决方案,搭建方便,适用于前后端不同语言不同类型的项目。以下记录下使用过程中发现和解决的问题。

为项目添加 submodule

git submodule add <repository> <path>

通常得指定分支

git submodule add -b <branch> <repository> <path>

clone 项目子模块为空文件夹的解决方案

git submodule update --init

子模块的依赖问题

父项目需要安装子项目所用到的依赖问题,如果是前端项目就需要安装 dependencies 下的库

子模块如何拉取更新

有两种方式,区别在于会不会拉取所有 submodule 的最新更新。

  • 在根目录下运行 git submodule update --recursive --remote,这个命令会拉取所有 submodule 的最新更新
  • cd 到 submodule 的目录,运行 git pull <remote> <branch> 命令,可以指定分支之类,这种方式只会拉取对应 submodule 的最新更新