git submodule 管理子项目
使用场景
拆分项目,当项目越来越大之后,我们希望 子模块 可以单独管理,并由 专门 的人去维护,这个时候只可以使用 git submodule
去完成。
常用命令
git clone <repository> --recursive # 递归方式克隆整个项目 git submodule add <repository> path # 添加子模块 git submodule init # 初始化子模块 git submodule update # 更新子模块 git submodule foreach git pull # 拉取所有子模块
使用方式
添加子模块
git submodule add <repository> path
即可添加
克隆子模块
git clone <repository> --recursive
直接递归克隆,如果是克隆父项目,可以在克隆完成之后,使用 git submodule init
初始化子项目列表和 git submodule update
更新最新的子项目。
更新子模块
如果子模块和新的修改,但是父项目没有更新到最新,则可以使用 git submodule foreach git pull
将所有的子项目中更新,如果子项目比 .gitmodules 新,则需要更新一下 .gitmodules 。
父项目中的子模块的版本是由 commit id 标识的,所以需要更新 .gitmodules 。
删除子模块
首先需要 git rm --cached <path>
,然后依次删除对应的目录、.gitmodules 文件中的记录、 .git/cofig 中的记录。再提交到远程服务器,就可以删除了。
注意:
在执行
git rm --cached <path>
的时候,最后不可以有 / 。
修改子模块配置信息
与删除相同,需要同时修改 .gitmodules 和 .git/config 两个文件中的 URL 值,然后执行 git submodule sync
来同步,然后再提交到远程即可。
相关推荐
formula 2020-11-12
huhongfei 2020-11-05
乾坤一碼農 2020-10-27
liumengyanysu 2020-10-22
E哥的aws认证攻略 2020-10-15
tianyafengxin 2020-10-08
guying 2020-10-05
好脑筋不如烂笔头 2020-09-17
nebulali 2020-09-11
佛系程序员J 2020-09-15
fenggit 2020-09-15
JustHaveTry 2020-09-11
兄dei努力赚钱吧 2020-09-06
IngeniousIT 2020-08-25
liumengyanysu 2020-08-17
guying 2020-08-16