如何使用git submodule检查一个子模块的特定版本?

我将如何去添加一个特定的标签或提交git子模块?

子模块存储库保持分离的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步:将子模块修复为特定的提交

默认情况下,新的子模块将跟踪主分支的HEAD,但在更新主回购时不会更新。 为了更改子模块以跟踪特定的提交或不同的分支更改目录到子模块文件夹,并切换分支,就像你在一个正常的回购。

 git checkout -b some_branch origin/some_branch 

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

从两个家伙争论 – 把Git子模块绑定到一个特定的承诺或分支 。