0%

git submodule

submodule note!

1. key cmds

1
2
3
4
5
git clone --recurse-submodules
git submodule add <url> <path>
git submodule init
git submodule update
git submodule foreach 'git checkout master && git pull'

2. Usage

添加submodule到当前项目

git submodule add <url> <path>

运行上面指令会在当前项目中生成 .gitmodules 文件,将submodule的路径和url保存下来。

注册/取消 submodule到当前版本管理

git submodule init
git submodule deinit <path>

运行上面的指令会把.gitmodules 中的信息注册到 .git/config 中,使当前项目保存 submodule信息,用于更新使用

更新 submodules

git submodule update 

更新并克隆 submodules 到 .gitmodules 中指定的路径

修改 submodule

cd 到指定的 submodule 路径下,运行 git status 看到当前的 submodule提交 hashcode ,修改前先检出 master 分支,修改后提交。
返回项目目录 git status会看到修改了的 submodule 提示,commit 会绑定当前 submodule hashcode引用到当前分支

其他项目更新上述修改的 submodule

git submodule update --remote

从submodule 检出最新分支,或者进入 submodule 检出 master

git submodule foreach 'git checkout master && git pull'