git 子模块
当在一个项目中使用了另外一个项目时,应使用 submodule
为项目添加子模块
-
git submodule add [--] <repository> [<path>]
这会同时注册并更新子模块;操作之后需要在主仓库暂存并commit。
克隆、更新包含子模块的项目
对于包含子模块的项目,在 clone
、pull
等操作后需要用
git submodule update --init --recursive
其中 --init
注册子模块到配置文件,update
更新子模块到仓库指定版本,--recursive
递归更新嵌套的子模块
- 也可以用
git clone --recursive [--] <repository> [<directory>]
代替普通的clone
- 如果子模块地址发生变化,先使用
git submodule sync --recursive
更新其地址,然后再更新子模块
编辑子模块
子模块相当于完整仓库,如果想要更换分支、更改当前版本、拉取新版本等等,只需要进入子模块操作即可;操作之后需要在主仓库暂存并commit。
查看子模块
-
git submodule status [--] [<path>…]
列出位于
path
的子模块信息,如不指定则全数列出;status
可以省略
移除子模块
git rm <path>
就足够了