git子模块

版权声明: https://blog.csdn.net/dadan1314/article/details/89498909

子模块命令

git submodule add -- <repository> <path>              #添加子模块
git submodule add -b <分支名> -- <repository> <path>   #添加指定分支子模块
git submodule init                                    #初始化子模块
git submodule update                                  #更新子模块
git submodule deinit -f <path>                        #移除子模块,从.git/config中移除
git submodule update --init -- <path>                 #单独更新子模块

.gitmodules

[submodule "package/googletest"]
	path = package/googletest
	url = ***.git
	branch = develop
[submodule "package/qt"]
	path = package/qt
	url = ***.git

.git/modules

每个子模块在该文件夹都有对应的目录git配置

.git/config

每个子模块在该文件中都有字段配置

删除子模块

基本原理

  1. 删除模块目录
  2. 删除.gitmodules中配置字段
  3. 删除.git/modules对应文件夹
  4. 删除.git/config中配置字段
  5. 删除索引区记录

实际操作

  •  git submodule deinit -f <path> 此步骤完成了基本原理中4,并且完成了1步骤克隆下来的文件,但会残留文件
  •  git reset --hard HEAD 或者 git rm --cached <路径> git rm --cached  .gitmodules,完成步骤5
  •  删除.git/modules对应文件夹和删除.gitmodules中配置字段

猜你喜欢

转载自blog.csdn.net/dadan1314/article/details/89498909