目录
文章目录
- 目录
- 摘要
- 1.git submodule解决问题
- 2.git submodule命令
- 2.1git submodule添加子模块
- 2.2git submodule删除子模块
- 2.3引用子模块修改了怎么办
摘要
本节主要记录git submodule相关知识欢迎批评指正!!!
1.git submodule解决问题
Git子模块(Git Submodule)主要解决了在大型软件开发中,一个项目可能依赖于其他独立的模块或第三方库的问题。
2.git submodule命令
//如果克隆的项目包含子模块,需要增加--recursive
git clone <repository> --recursive //递归的方式克隆整个项目
git submodule add <repository> <path> //添加子模块//初始化子模块
git submodule init//更新子模块
git submodule update //拉取所有子模块
git submodule foreach git pull //递归克隆
git submodule update --recursive //同步子模块仓库地址
git submodule sync --recursive//更新(下载)子模块
git submodule update --init --recursive
2.1git submodule添加子模块
Git 提供了 submodule 来支持子模块的需求,使用它可以很方便的将多个独立仓库包含到同一个主工程中:
$ git init
$ git submodule add http://xxx.xxx/common.git
$ git submodule add http://xxx.xxx/framework.git
2.2git submodule删除子模块
git rm --cached src/modules
rm -rf 子模块目录 删除子模块目录及源码
vi .gitmodules 删除项目目录下.gitmodules文件中子模块相关条目
vi .git/config 删除配置项中子模块相关条目
rm -rf .gitmodules/* 删除模块下的子模块目录,每个子模块对应一个目录,注意只删除对应的子模块目录即可
2.3引用子模块修改了怎么办
目前有两个库A和B,A库调用B库,现在B库修改了,并且上传远端,A本地和远端都无法感知,需要主动操作pull
//进入子库路径
//获取
git pull
//上传,这里需要注意是在子模块外面推送
如果引用多个库,这样操作太麻烦,需要执行
git submodule foreach git pull
注意远端还需要执行
git add .
git commit -m ""
git push