Answers:
子模块存储库处于指向特定提交的分离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:添加子模块
git submodule add git://some_repository.git some_repository
步骤2:将子模块固定为特定提交
默认情况下,新的子模块将跟踪master分支的HEAD,但在更新主存储库时不会更新。为了更改子模块以跟踪特定的提交或其他分支,请像在普通存储库中一样,将目录更改为子模块文件夹并切换分支。
git checkout -b some_branch origin/some_branch
现在,子模块已固定在开发分支上,而不是master的HEAD上。
git submodule add -b some_branch git://some_repository.git some_repository
git submodule add -b
无法使用标签或sha1hash。它只能取一个分支。