拆分项目,当项目愈来愈大以后,咱们但愿 子模块 能够单独管理,并由 专门 的人去维护,这个时候只能够使用 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 新,则须要更新一下 .gitmodules 。code
父项目中的子模块的版本是由 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