在git管理的项目中引入一个被git管理的子模块进来,以后如果子模块更新,我们直接在父项目中拉取依赖的子模块的最新内容即可,
不用每次打jar包,在copy到项目里。使用命令如下:
path:可以是一个文件夹名称如a,也可以是一个多层目录:a/b/c,这里的path事先不能存在,如果存在,git会报错。
git submodule add git@github.com:xxxx/xxx/xx.git path
git submodule add git@github.com:xxxx/xxx/xx.git mymodules
当前命令会把子模块拉取到放到本地项目的哪个文件夹中
执行完命令之后,会在当前目录下多出来两个文件
.gitmodules
mymodules
然后执行
git add .
git commit -m 'add submodule'
git push
可以在远端看到多出来一个submodules文件夹
如何拉取子模块的最新代码
进入到子模块目录下执行如下命令:
git pull
如果子模块特别多,可以执行如下命令一次性拉取所有子模块的内容,需要在父目录下执行
git submodule foreach git pull
新成员如何完整的拉取包括子模块的项目
执行如下命令,在父项目的根目录下
git submodule init
git submodule update --recursive
执行完之后,submodule会显示处于某个提交节点,而不是分支,这个时候我们可以执行git checkout master切换到master分支,或者别的分支上
我们也可以执行如下一条命令,达到拉取子模块的内容
git clone git@github.com:xxxx/xxx/xx.git myproject --recursive
删除子模块
删除子模块没有相关的命令,我们可以通过rm -rf删除文件,在提交,在推送,在把.gitmodules文件删除,即可
网友评论