Git 子模块的添加与管理

Git 子模块的添加与管理

参考:git submodule——子项目/子模块的使用

1 添加子模块

进入需要存放子项目的目录,然后执行:

git submodule add https://github.com/bsm/sarama-cluster

git submodule add <仓库地址> [本地目录] 会把子仓库作为独立仓库 clone 到当前目录中,并把子仓库的 commit 记录到父仓库的索引(.gitmodules)中。

注意:

  1. 假定希望子项目被安装到目录 github.com,那么需要先在当前目录下创建 <组织名> 目录(如 bsm),再进入该目录执行 git submodule add https://github.com/bsm/sarama-cluster,否则会以当前目录名作为本地路径。
  2. 如果添加失败,提示 'vendor/github.com/bsm/sarama-cluster' already exists in the index,需要先从索引中移除旧记录:
git rm --cached sarama-cluster # 从索引中移除但保留工作区文件 git submodule add https://github.com/bsm/sarama-cluster

2 提交子模块变更到父仓库

git commit -am 'added sarama-cluster module' git push

3 克隆包含子模块的仓库

克隆时需要带上 --recursive 参数,才会自动检出子模块:

git clone --recursive ssh://git@gitlab.example.com:8022/elsa/anti-bot.git # 如果已经 clone 过了,可以手动初始化并更新子模块 git submodule update --init --recursive

4 子模块的常用维护命令

# 更新所有子模块到各自仓库的最新提交 git submodule update --remote # 查看子模块状态(记录在父仓库中的 commit) git submodule status # 删除子模块(三步) git submodule deinit -f <path> git rm -f <path> # 清理 .gitmodules 中和 .git/config 中的残留记录
阅读 — · 全站 —
🎸 我的歌单 0 首