如何使用'git submodule'查看子模块的特定版本?

时间:2012-06-06 12:14:55

标签: git version-control

我如何为特定标签或提交添加Git子模块?

2 个答案:

答案 0 :(得分:135)

子模块存储库保持指向特定提交的分离HEAD状态。更改该提交只需要检出不同的标记或提交,然后将更改添加到父存储库。

$ cd submodule
$ git checkout v2.0
Previous HEAD position was 5c1277e... bumped version to 2.0.5
HEAD is now at f0a0036... version 2.0
父存储库上的

git-status现在将报告一个脏树:

# On branch dev [...]
#
#   modified:   submodule (new commits)

添加子模块目录并提交以存储新指针。

答案 1 :(得分:33)

  

步骤1:添加子模块

   git submodule add git://some_repository.git some_repository
     

步骤2:将子模块修复为特定提交

     

默认情况下,新子模块将跟踪主分支的HEAD,但在更新主存储库时不会更新。要更改子模块以跟踪特定提交或不同分支,请将目录更改为子模块文件夹并切换分支,就像在普通存储库中一样。

   git checkout -b some_branch origin/some_branch
     

现在子模块已固定在开发分支上,而不是主机的HEAD。

来自Two Guys Arguing — Tie Git Submodules to a Particular Commit or Branch

相关问题