如何使用';git子模块';?
如何为特定的标记或提交添加Git子模块 步骤1:添加子模块如何使用';git子模块';?,git,version-control,git-submodules,Git,Version Control,Git Submodules,如何为特定的标记或提交添加Git子模块 步骤1:添加子模块 git submodule add git://some_repository.git some_repository 步骤2:将子模块修复为特定提交 默认情况下,新的子模块将跟踪主分支的负责人,但它不会在您更新主存储库时更新。要更改子模块以跟踪特定的提交或不同的分支,请将目录更改为子模块文件夹并切换分支,就像在普通存储库中一样 git checkout -b some_branch origin/some_branch
git submodule add git://some_repository.git some_repository
步骤2:将子模块修复为特定提交
默认情况下,新的子模块将跟踪主分支的负责人,但它不会在您更新主存储库时更新。要更改子模块以跟踪特定的提交或不同的分支,请将目录更改为子模块文件夹并切换分支,就像在普通存储库中一样
git checkout -b some_branch origin/some_branch
$ 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 checkout -b some_branch origin/some_branch
$ 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)
添加子模块目录并提交以存储新指针。更容易使用
git submodule Add-b some\u分支git://some_repository.git 一些存储库
目前看来,git子模块add-b
不能接受标记或sha1hash。它只能接受一个分支。Git问题跟踪器中是否存在此问题?有人能帮我们发个网址吗?谢谢。@colan报告错误的说明在。但是-b
支持分支而不是标记或提交shas是一个特性,不是一个bug(事实上-b
是-branch
的缩写)。经过这么多年,他们仍然没有一个公开的问题跟踪器。在我用一个子模块的特定分支/版本提交了父回购协议后,其他人将来能签出相同版本的子模块吗?或者,它们必须再次手动指定?@QZHua:我自己也做过这样的实验,当父模块被克隆时,子模块的提交ID似乎被保留了下来。现在我们进入了黑暗区。。。。。我可以承诺我的本地git,。。。。但也许不会推到原点。。。。这可能会让这件事变得不可收拾。。。。。经验告诉我们。。。。。当心!如果子模块发生了很大的变化,则可能会导致错误的重复