git submodule 管理子项目

使用场景

拆分项目,当项目愈来愈大以后,咱们但愿 子模块 能够单独管理,并由 专门 的人去维护,这个时候只能够使用 git submodule 去完成。git

经常使用命令

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 便可添加shell

克隆子模块

git clone <repository> --recursive 直接递归克隆,若是是克隆父项目,能够在克隆完成以后,使用 git submodule init 初始化子项目列表和 git submodule update 更新最新的子项目。服务器

更新子模块

若是子模块和新的修改,可是父项目没有更新到最新,则能够使用 git submodule foreach git pull 将全部的子项目中更新,若是子项目比 .gitmodules 新,则须要更新一下 .gitmodulescode

父项目中的子模块的版本是由 commit id 标识的,因此须要更新 .gitmodules递归

删除子模块

首先须要 git rm --cached <path> ,而后依次删除对应的目录、.gitmodules 文件中的记录、 .git/cofig 中的记录。再提交到远程服务器,就能够删除了。get

注意:同步

在执行 git rm --cached <path> 的时候,最后不能够有 /

修改子模块配置信息

与删除相同,须要同时修改 .gitmodules.git/config 两个文件中的 URL 值,而后执行 git submodule sync 来同步,而后再提交到远程便可。it

文章首发于:https://www.zucchiniy.cnclass

相关文章
相关标签/搜索