简单又基础的Git Submodules的TLDR。上次在用hugo的时候碰到了git submodules的部分,完全是碰到知识盲区了,在这边简单记录一下git submodules的几种使用场景和用法。
虽然现在有ChatGPT之后直接打几个字问一下就行了,但是还是用博客记录的方式更方便理解吧。
克隆带有 Git Submodules 的仓库
1 2 3 4 5 6 7
| git clone --recurse-submodules <主仓库URL>
git clone <主仓库URL> <主仓库目录?> cd <主仓库目录> git submodule update --init --recursive
|
添加 Submodules 到当前仓库
1
| git submodule add <子模块仓库URL> [路径]
|
更新现有的 Submodules
根据记录的子模块的 Commit ID 来更新子模块
- 当子模块仓库有了更新
- 当主项目引用的子模块的提交点改变
1
| git submodule update --init --recursive
|
更新现有 Submodules 到最新提交
1 2 3 4 5 6 7
| cd path/to/my-submodule git pull
git add path/to/my-submodule git commit -m "chore: update submodule"
|
更新现有 Submodules 的仓库地址
1 2 3 4 5 6 7 8 9 10 11 12
|
git submodule sync
git submodule update --init --recursive
git add .gitmodules git commit -m "chore: update submodule url" git push
|
删除现有 Submodule
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| git rm -f <submodule_path>
git add . git commit -m "chore: remove submodule"
rm -rf .git/modules/<submodule_path>
|
不过确实很少碰见需要用到git submodule的应用场景…