跳至正文
来两杯美式
返回

Git 知识系列(七):Submodule 操作指南

By 来两杯美式
发布于

AI 执行指令

添加 Submodule

git submodule add <url> <path>
git add .gitmodules <path>
git commit -m "<emoji> 添加 submodule"

克隆后初始化

git clone --recurse-submodules <url>
# Git Submodule AI 执行指南
git clone <url> && git submodule update --init

更新 Submodule

cd <submodule-dir>
git checkout <version> || git pull origin main
cd ..
git add <submodule-dir>
git commit -m "<emoji> 更新 submodule"

两层提交规则

Submodule 有两层独立提交

  1. 子仓库:提交实际内容 cd submodule && git commit -m "..." && git push
  2. 父仓库:提交 commit ID 引用 cd .. && git add submodule && git commit -m "..."

核心概念

概念说明
子仓库代码submodule 目录的实际文件
子仓库引用.git/modules/<name>/ 指向的 .git
索引记录Git index 中的 commit ID (160000 mode)

常见问题

Q: submodule 目录为空?

git submodule update --init

Q: 完全移除 submodule?

git submodule deinit <name>
git rm <name>
rm -rf .git/modules/<name>
git commit -m "<emoji> 移除 submodule"

命令速查

命令用途
git submodule add <url> <path>添加
git submodule update --init初始化
git submodule update --init <name>初始化特定
git submodule update --init --recursive递归初始化
git submodule deinit <name>移除本地工作目录
git submodule rm <name>完全移除

相关


分享这篇文章:
通过邮件分享这篇文章✓ 链接已复制
所属专题
Git
第 7 / 8 篇
查看系列全部文章
  1. 01.Git 知识系列(一):安装与基础配置
  2. 02.Git 知识系列(二):日常工作流
  3. 03.Git 知识系列(三):撤销与回退
  4. 04.Git 知识系列(四):分支管理与远程协作
  5. 05.Git 知识系列(五):标签、忽略与子模块
  6. 06.Git 知识系列(六):仓库维护与排错
  7. 07.Git 知识系列(七):Submodule 操作指南
  8. 08.Git 知识系列(八):多 Remote 双向同步

上一篇
Git 知识系列(八):多 Remote 双向同步
下一篇
自建 SearXNG + MCP:给 AI 工具接入可控的网页搜索