一、背景和边界
Git Submodule 允许一个git仓库,作为另一个git仓库的子目录,并且保持父项目和子项目相互独立。
Git Submodule 是Git自带的嵌套工程管理命令,减少依赖项。主要是通过.git/config和.gitmodules文件实现依赖管理。
二、命令解释

没有任何修饰符参数 : 原生参数
<> : 占位参数,必须,<>中间是描述词汇,可变
[] : 可选组合
() : 必选组合,常和 | 组合使用,不可变
| : 互斥参数
... : 前一个参数可以有多个
-- : 标记后续参数类型(用来区分后面跟的是参数选项还是参数值)
比较难理解的是-- ,rm -- h是删除名为h的文件,rm - h是帮助命令
检测:解释git submodule help命令的使用。
三、使用示例
# 为父库添加子库
git submodule add https://git.oschina.net/gaofeifps/leg.git
# clone完整父库(+子库)
git clone https://git.oschina.net/gaofeifps/body.git
git submodule init && git submodule update
# 下面这一句的效果和上面三条命令的效果是一样的,多加了个参数 `--recursive`
git clone https://git.oschina.net/gaofeifps/body.git --recursive
# 新建branch,checkout等,父库需要单独再操作
git submodule foreach git branch develop
git submodule foreach git checkout develop
git submodule foreach git push --set-upstream origin develop
git submodule foreach git checkout develop
git submodule foreach git pull
git submodule foreach git commit -am 'msg'
网友评论