-
git config --global alias.pull "!git pull && git submodule update --init --recursive"
git config --global alias.pullall "!f(){ git pull "$@" && git submodule update --init --recursive; }; f"
git config --global --unset alias.pullall 取消别名
https://cloud.tencent.com/developer/ask/72181
通过这种方式,可以在git pull的时候,自动拉到submodule的代码,就不用每
次都执行两步操作了。
- 对于submodule的开发者来说,需要将submodule的子模块的代码,git add commit push到子模块的远程仓库。
- 而在主项目中,submodule的开发者需要执行git submodule update --remote 来获取子项目的远程仓库代码,同时执行 add commit push到 主项目的远程仓库。
- 非submodule的开发者(即主项目开发者) 需要保证每次git pull时,同步执行git submodule update来拿到主项目中的submodule子模块的最新代码,否则可能会出现旧的submodule版本覆盖新的 submodule版本的情况。
注意:
- 主项目开发者不需要用到git submodule update --remote 。这个操作只有submodule的开发者才需要用到。
- 包含submodule的代码在合并时,比如从develop 合并到 release分支。 切换到release分支时,会提示FlutterLab有modify,此时注意不要执行add commit push操作,直接合并develop即可。