子模块 - 结帐班奇而不是哈希



我有一个包含多个子模块的 git 存储库。

结账时,我通常执行以下操作

git clone URL # without --recursive!

所以我有一个主存储库,在 master 中签出

git checkout mybranchname_main_repo

现在我在其分支中签出了一个主存储库

git submodule update --init # now i checkout submodules because now they point to their supposed branch hash and not the master

现在在其分支中拥有主存储库,其子模块(存储库(签出到最后一个提交的哈希,该哈希通常也在开发分支中,而不是主

我遇到的问题是所有子模块都签出最后一个提交的哈希值,而不是分支/头。

是否有一个命令可以添加一个额外的命令,使子模块从 HEAD 中的哈希值中签出分支?

像这样:(警告,这是伪代码(

git 子模块为每个结帐头

将行branch = <branchname>直接添加到.gitmodules中将允许git submodule update --remote(有效地(更新到分支。您还可以使用git submodule add -b添加此信息。

或者,git submodule foreach存在,并在每个子模块中执行任意 shell 命令。因此,git submodule foreach 'git checkout HEAD'也是一个完全有效的命令,可以将每个子模块检出HEAD

或者:检查这个问题,它有很多选项,更详细。

最新更新