主项目添加子模块:

git submodule add http://xxxx.gif dir
git submodule init
git submodule update
git commit -am 'add submodule'
git push

Clone带有子模块的项目:

git clone --recursive http://xxx.git [path]
或者
git clone http://xxx.git [path]
git submodule init
git submodule update

在主项目修改子模块:

cd submodule/path
git checkout master
git commit -am 'modify code'
git push origin master
cd main/path
git commit -am 'modify submodule commit id'
git push

其它同事更新最新的子模块代码到他本地项目:

git pull
git status
#这里会拉取主项目更新,并显示子模块有改动,说明子模块与当前的代码不同了
#拉取子模块最新代码
git submoodule foreach git pull
#或者分别进入每个子模块目录,执行git pull,如下
cd submodule/path
git checkout master
git pull

#现在查看主项目状态,应该和其他最新的代码一致了
#cd main/path
git status

要在项目中移除子模块:

#删除git cache和物理文件夹
git rm -r --cached submodule/path/
rm -rf submodule/path/

#删除.gitmodules的这个子模块的内容

#删除.git/config的submodule相关配置

#查看状态,提交更改
git status
git commit -am 'delete submobule'
git push

标签: none

添加新评论