git submodule的使用笔记

子模块的添加

添加子模块非常简单,命令如下:

//git submodule add <url> <path>
git submodule add git@github.com:xiaoyeqiannian/alita.git alita

其中,url为子模块的路径,path为该子模块存储的目录路径。

执行成功后,查一下状态

//git status
......
Changes to be committed:
  (use "git rm --cached <file>..." to unstage)

	new file:   .gitmodules
	new file:   alita

会看到项目中除了子模块外,还增加了.gitmodules文件,打开文件查看,其实就是刚才add的url和path

[submodule "alita"]
    path = alita
    url = git@github.com:xiaoyeqiannian/alita.git

可以试试,在alita目录下,git操作就是子模块的,在外面操作就主模块的,互不影响,最后提交即完成子模块的添加

git commit -m "add submodule"

子模块的使用

平常用的话主要就是更新子模块的代码

git pull origin master

如果说不用这个子模块了,删除方法如下

//删除子模块目录: rm -rf 子模块目录
rm -rf alita

//删除项目目录下.gitmodules文件中子模块相关条目
vim .gitmodules 

//删除配置项中子模块相关条目
vim .git/config 

//删除modules下相关目录
rm -rf .git/modules/alita

删除模块下的子模块目录,每个子模块对应一个目录,注意只删除对应的子模块目录即可
执行完成后,再add commit就好了,如果仍然报错,执行如下:

//git rm --cached 子模块名称
git rm --cached alita

完成删除后,提交到仓库即可。如果clone到其他地方,则需要update一下

git submodule update

克隆

git clone xxx --recurse-submodules

版权声明:本文为weixin_43262264原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
THE END
< <上一篇
下一篇>>