git submodule 使用方法

Published: · LastMod: November 27, 2023 · 449 words

submodule 🔗

平时我们在管理项目的时候都是用git来进行管理,git管理很方便,但是一旦项目越来越大,单个git仓库管理起来就没有那么方便了 这个时候我们就可以使用git的另一个工具submodule来管理我们的项目

submodule 是用来管理主项目和子项目之间的关系。

使用 🔗

1
git submodule add <submodule_url>

此时主项目中会多出一个文件.gitmodules,此文件是用来管理子模块的

以此博客为例

1
2
3
[submodule "themes/LoveIt"]
	path = themes/LoveIt
	url = https://github.com/dillonzq/LoveIt.git

安装 🔗

平时我们clone项目都是使用git clone xxx下载项目,如果项目中有子模块,这种方式就不能下载下来了

如果希望子模块代码也获取到,一种方式是在克隆主项目的时候带上参数 --recurse-submodules,这样会递归地将项目中所有子模块的代码拉取。

另一种方式

git submodule init && git submodule update

更新所有模块 🔗

1
git submodule foreach 'git pull origin master'
1
git submodule update --init --recursive --remote

单独更新一个子模块 🔗

1
git submodule update --init --remote a/submodule/path

删除某个子模块 🔗

git submodule deinit project-sub-1

git rm project-sub-1

issues 🔗

1.版本跟踪里出现git submodule commit xxxxx错误 🔗

解决方法

git submodule update

2. git 子模块submodule dirty 🔗

1
git config --global diff.ignoreSubmodules dirty

修改.git/config

1
2
[diff]
ignoreSubmodules = dirty