主题
  • 默认模式
  • 浅蓝色模式
  • 淡绿色模式
  • 深夜模式

git submodule 命令

Git 基本操作


git submodule 命令允许你将一个 Git 仓库作为另一个 Git 仓库的子目录。

git submodule 命令对于大型项目或需要将外部库集成到项目中的情况非常有用。 通过使用子模块,你可以将外部库作为你的项目的一部分来管理,而不必将其直接合并到主仓库中。


基本命令

添加子模块

将一个 Git 仓库作为子模块添加到当前仓库中:

git submodule add <repository-url> <path>
  • 将指定的仓库添加为子模块
  • <path> 是子模块在你项目中的路径(可选,默认使用仓库名)。

初始化子模块

如果你克隆了一个包含子模块的仓库,需要先初始化子模块:

git submodule init
  • 初始化本地配置文件中的子模块。

更新子模块

拉取子模块的数据并检出父项目中指定的提交:

git submodule update
  • 拉取子模块的数据并检出父项目中指定的提交。

克隆包含子模块的项目

这个命令会推送所有分支,包括一些你可能不想公开的试验性分支,所以使用时要谨慎:

git clone --recurse-submodules <repository-url>
  • 克隆项目并自动初始化和更新子模块。

常用操作

更新子模块到最新提交

如果你想将子模块更新到远程仓库的最新提交,可以使用以下命令:

git submodule update --remote
  • 将子模块更新到远程仓库的最新提交

查看子模块状态

查看当前子模块的状态,包括当前提交和路径:

git submodule status
  • 显示所有子模块的当前提交ID和路径

遍历子模块执行命令

如果你想在每个子模块中执行特定的命令,可以使用以下命令:

git submodule foreach '<command>'
  • 在每个子模块中执行指定的命令

删除子模块

1. 删除.gitmodules中的相关条目

2. 删除.git/config中的相关条目

3. 执行:

git rm --cached <path-to-submodule>
rm -rf <path-to-submodule>
rm -rf .git/modules/<path-to-submodule>

修改子模块 URL

1. 编辑.gitmodules文件

2. 执行:

git submodule sync

Git 基本操作



评论区 0
发表评论