拆分项目,当项目愈来愈大以后,咱们但愿 子模块 能够单独管理,并由 专门 的人去维护,这个时候只能够使用 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
便可添加服务器
git clone
直接递归克隆,若是是克隆父项目,能够在克隆完成以后,使用 git submodule init
初始化子项目列表和 git submodule update
更新最新的子项目。spa
若是子模块和新的修改,可是父项目没有更新到最新,则能够使用 git submodule foreach git pull
将全部的子项目中更新,若是子项目比 .gitmodules 新,则须要更新一下 .gitmodules 。code
父项目中的子模块的版本是由 commit id 标识的,因此须要更新 .gitmodules 。递归
首先须要 git rm --cached
,而后依次删除对应的目录、.gitmodules 文件中的记录、 .git/cofig 中的记录。再提交到远程服务器,就能够删除了。get
注意:同步
在执行
git rm --cached
的时候,最后不能够有 / 。it
与删除相同,须要同时修改 .gitmodules 和 .git/config 两个文件中的 URL 值,而后执行 git submodule sync
来同步,而后再提交到远程便可。class
文章首发于:www.zucchiniy.cnmodule