git - git - 子模块 - 结帐银行而不是哈希
问题描述
我有一个带有多个子模块的 git repo。
结帐时,我通常执行以下操作
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
现在在其分支中拥有主存储库,其子模块(repos)签出到最后提交的哈希,该哈希通常也在开发分支中,而不是主
我遇到的问题是所有子模块都检查最后提交的哈希值而不是分支/头。
是否有一个命令我可以添加一个额外的命令,使子模块从它们在 HEAD 中的哈希值中检出分支?
类似于:(警告,这是伪代码)
git submodule foreach 结帐 HEAD
解决方案
将行branch = <branchname>
直接添加到.gitmodules
将允许git submodule update --remote
(有效地)更新到分支。您也可以使用 添加此信息git submodule add -b
。
或者,git submodule foreach
在每个子模块中存在并执行任意 shell 命令。因此,git submodule foreach 'git checkout HEAD'
检查每个子模块到HEAD
.
推荐阅读
- java - 如何使用对象序列化java从文件中加载线数组对象
- mysql - 没有该功能的 MySQL Percentage Rank
- socket.io - 设置客户端与套接字服务器断开连接的时间条件
- reporting-services - 带有“允许 Null”的 SSRS 级联参数 - 仅在所选参数值不为空时启用
- css - 我的浮动图标位于我网站内容的后面
- python - 多处理时如何解决“无法序列化'_io.BufferedReader'对象”?
- asp.net - 如何使用 parsley.js 验证 TreeView?
- git - 如何列出作者插入的行,不包括文件?
- c# - 数据库中的某些属性在具有值时为空
- firebase - 何时在 noSQL 中复制数据?