Git - submodule
添加 submodule
假设当前 git 项目路径为
/home/lizs/app/project/
1 | git submodule add submoduleUrl localPath |
submoduleUrl:submodule 仓库路径,如:https://github.com/lizs/hello.git不指定 localPath,submodule clone 下来的项目会在当前目录,并且 submodule 的项目名就是 submodule 的根目录
1
git submodule add https://github.com/lizs/hello.git
submodule clone 下来的项目会在当前目录下,并且会用项目的名称作为submodule的根目录,也就是说,submodule的路径为
/home/lizs/app/project/hello如果添加
localPath,localPath不能够是已经存在的目录。并且 submodule 会以localPath作为根目录。1
git submodule add https://github.com/lizs/hello.git www/
submodule clone 下来的项目在当前目录下的
www目录下,即/home/lizs/app/project/www/1
git submodule add https://github.com/lizs/hello.git www/hi
submodule clone 下来的项目在当前目录下的
www/hi目录下,即/home/lizs/app/project/www/hi。localPath不能够是已经存在的目录,是指路径的最后一层目录不能够已经存在。如果,localPath为www,即当前目录下不能够有www目录。如果localPath为www/hi,即当前目录下可以有www目录(没有则会自动创建),但是www目录下不能够有hi目录。添加完成之后,会在当前项目跟路径下生成一个
.gitmodules文件,其中记录了子模块的信息。
更新 submodule
进入 submodule 目录下,将更新内容推送到 submodule 的仓库即可。
删除 submodule
克隆的项目中带有 submodule
当 git clone 下来的项目中带有 submodule 时,初始化的时候,submodule 的内容并不会自动下载下来。此时,只需执行:1
git submodule update --init --recursive