npm
lerna
submodules
配置子模块
git submodule add <submodule_url> <submodule_directory> # 添加子项目
操作后main project
会多出一个 .gitmodule
的配置文件,其内容大致如下:
[submodule <submodule_name>]
path = <local_directory>
url = <remote_url>
branch = <remote_update_branch_name>
管理子模块
先进入到 submodules 的路径里面:
cd <submodule_directory>
git fetch # 获取submodules远端源码
git merge origin/<branch_name> # 合并 submodules 远端源码
git pull # 获取 submodules 远端源码并合并到当前分支
git checkout <branch_name> # 切换 submodules 的 branch
git commit -am "change_summary" # 提交 submodules 的 commit
git submodule update --remote <submodule_name> # 更新 submodules 的 master 的源码
git push --recurse-submodules=check # 当 submodules commits 提交有问题的时候放弃整个push
git push --recurse-submodules=on-demand # 分开提交 submodules 和 main project
同时管理多个 submodules
通过 foreach 来管理:
git submodule foreach 'git stash' # stash所有 submodules
git submodule foreach 'git checkout -b <branch_name>' # 所有 submodules 创建新分支
git submodule foreach 'git pull' # 更新所有的子模块