174

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

4

2 回答 2

220

子模块存储库处于指向特定提交的分离 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)

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

于 2012-06-06T14:34:36.493 回答
43

第一步:添加子模块

   git submodule add git://some_repository.git some_repository

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

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

   git checkout -b some_branch origin/some_branch

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

来自两个人争论——将 Git 子模块与特定的提交或分支联系起来

于 2012-06-06T12:18:16.503 回答