git submodule

在git管理的项目中引入一个被git管理的子模块进来,以后如果子模块更新,我们直接在父项目中拉取依赖的子模块的最新内容即可,
不用每次打jar包,在copy到项目里。使用命令如下:

path:可以是一个文件夹名称如a,也可以是一个多层目录:a/b/c,这里的path事先不能存在,如果存在,git会报错。

git submodule add [email protected]:xxxx/xxx/xx.git path
git submodule add [email protected]: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 [email protected]:xxxx/xxx/xx.git myproject --recursive

删除子模块

删除子模块没有相关的命令,我们可以通过rm -rf删除文件,在提交,在推送,在把.gitmodules文件删除,即可

你可能感兴趣的:(git submodule)