当前位置: 首页 > news >正文

git子模块--命令--表格版

Git子模块指令查询手册


基本操作指令

指令功能说明示例
git submodule add <仓库地址> [路径]添加子模块将外部仓库作为子模块添加到主项目,生成.gitmodulesgit submodule add https://github.com/user/repo.git submodule_folder
git clone --recursive <主仓库地址>克隆含子模块项目克隆主仓库及其所有子模块。git clone --recursive https://github.com/user/main-repo.git
git submodule init初始化子模块.gitmodules配置写入.git/configgit submodule init
git submodule update更新子模块拉取子模块代码并检出记录的提交。git submodule update
git submodule sync同步子模块URL更新子模块URL配置。git submodule sync
git rm <子模块路径>
git deinit <子模块路径>
删除子模块删除子模块记录并解除初始化。git rm submodule_folder
git deinit submodule_folder

状态查看指令

指令功能说明示例
git submodule status查看子模块状态显示子模块路径、提交哈希和分支信息。git submodule status
git submodule summary查看子模块更新摘要显示子模块与主仓库记录的差异。git submodule summary
git status --submodules查看项目状态(含子模块)显示主仓库和子模块状态。git status --submodules
git diff --submodule查看子模块差异显示主仓库与子模块差异。git diff --submodule

更新与同步指令

指令功能说明示例
git submodule update --remote更新子模块到远程最新拉取子模块远程分支最新提交。git submodule update --remote
git submodule foreach git pull拉取所有子模块最新代码遍历子模块执行git pullgit submodule foreach git pull
git pull --recurse-submodules拉取主仓库并更新子模块同时更新主仓库和子模块。git pull --recurse-submodules
git submodule foreach git fetch获取子模块最新元数据拉取子模块最新元数据。git submodule foreach git fetch

分支管理指令

指令功能说明示例
git submodule add -b <分支名> <仓库地址> [路径]添加子模块并指定分支添加子模块并设置跟踪分支。git submodule add -b main https://github.com/user/repo.git submodule_folder
git config -f .gitmodules submodule.<name>.branch <分支名>设置子模块跟踪分支.gitmodules中设置跟踪分支。git config -f .gitmodules submodule.submodule_folder.branch main
git submodule foreach git checkout <分支名>切换子模块分支遍历子模块切换分支。git submodule foreach git checkout main
git checkout --recurse-submodules <分支名>切换主仓库分支并同步子模块切换主仓库分支并更新子模块。git checkout --recurse-submodules feature-branch

高级操作指令

指令功能说明示例
git submodule foreach --recursive <命令>递归遍历子模块递归执行命令于所有子模块。git submodule foreach --recursive git status
git submodule foreach --init <命令>初始化并执行命令初始化未初始化的子模块并执行命令。git submodule foreach --init git pull
git submodule absorbgitdirs合并子模块.git目录将子模块.git目录合并到主仓库。git submodule absorbgitdirs
git submodule deabsorb恢复子模块独立.git目录恢复子模块独立.git目录。git submodule deabsorb

协同操作指令

指令功能说明示例
git add <子模块路径>记录子模块变更记录子模块新提交哈希到主仓库。git add submodule_folder
git push --recurse-submodules=check推送前检查子模块确保子模块变更已推送。git push --recurse-submodules=check
git push --recurse-submodules=on-demand推送主仓库并自动推送子模块推送主仓库并自动推送子模块变更。git push --recurse-submodules=on-demand

配置设置指令

指令功能说明示例
git config submodule.<name>.update <策略>设置子模块更新策略设置更新策略(nonecheckoutrebasemerge)。git config submodule.submodule_folder.update rebase
git config submodule.<name>.branch <分支名>设置子模块跟踪分支设置跟踪分支。git config submodule.submodule_folder.branch main
git config submodule.recurse true全局启用子模块递归启用子模块命令默认递归。git config submodule.recurse true

实用组合指令

指令功能说明示例
git submodule foreach --recursive 'git checkout main && git pull origin main'批量更新子模块到主分支遍历子模块切换到main并拉取最新代码。git submodule foreach --recursive 'git checkout main && git pull origin main'
`git submodule foreach --recursive 'git fetch origin main && [ “ ( g i t r e v − p a r s e H E A D ) " = " (git rev-parse HEAD)" = " (gitrevparseHEAD)"="(git rev-parse origin/main)” ] && echo “✅ $name 一致”echo “❌ $name 不一致”'`检查子模块与远程主分支同步
git clone --recursive <主仓库地址>
git submodule update --init --recursive
递归克隆并更新子模块克隆主仓库并初始化、更新所有子模块。git clone --recursive https://github.com/user/main-repo.git
git submodule update --init --recursive
git config -f .gitmodules submodule.<name>.branch main
git submodule update --remote
git add <子模块路径>
git commit -m "Update submodule"
设置跟踪分支并更新子模块设置跟踪main分支,更新子模块并记录变更。git config -f .gitmodules submodule.submodule_folder.branch main
git submodule update --remote
git add submodule_folder
git commit -m "Update submodule to latest main"

相关文章:

  • Java 学习笔记:注解、泛型与 IO 流
  • 力扣395做题笔记
  • 刷leetcode hot100返航版--栈和队列5/24
  • 人工智能数学基础实验(三):最小二乘法-数值计算
  • 以下是修改Java版《我的世界》字体的分步指南(DeepSeek)
  • 后经济时代开源链动2+1模式AI智能名片S2B2C商城小程序驱动零售企业转型研究
  • 基于Spring Boot的高校科研绩效管理的设计与实现
  • Java线程同步:从多线程协作到银行账户安全
  • Linux核心技术:Linux文件系统与bootFS/rootFS
  • 进程通信-内存共享
  • 【目标检测】【医学图像目标检测】BGF-YOLO:脑肿瘤检测的多尺度注意力特征融合
  • Flink 常用算子详解与最佳实践
  • Python数据可视化实战:让数据从「数字堆」变成「故事书」
  • NestJS——重构日志、数据库、配置
  • Javase 基础加强 —— 08 IO流
  • 【Python 命名元祖】collections.namedtuple 学习指南
  • Java中关于数组的使用(下)
  • springboot中过滤器配置使用
  • 《爱的艺术》
  • python打卡训练营打卡记录day36
  • 绥化做网站/如何做百度免费推广
  • 房山区网站建设/郑州seo排名哪有
  • 帝国cms做企业网站/西安搜建站科技网站
  • 买了域名和空间怎么做网站/谷歌广告投放
  • 东莞seo整站优化/seo长尾关键词
  • 做一个像qq空间的网站/郑州粒米seo顾问