子模块的git日志和切换回主模块时的git子模块更新

问题描述

我有两个存储库,一个包含实际代码,一个具有(单元)测试。 tests作为code存储库中的子模块包含在内。两者都有两个分支masterdev。在主存储库中,我引用了子模块的特定提交:
母版:tests@f860f6fd(是对tests:master的提交)
dev:tests@028bfd53(这是对tests:dev的提交)

在新机器上,我检出了主存储库以及子模块:

> git clone --recurse-submodules URL .
[...]
Submodule 'tests' (URL2) registered for path 'tests'
Submodule path 'tests': checked out 'f860f6fd8dbd613a6569350e5651a34986ae15d6'

这给了我code:master以及一个独立的子模块头:

> cd tests && git branch
* (HEAD detached at f860f6f)
  master

接下来,我切换到dev分支:

> cd .. && git checkout dev
Branch 'dev' set up to track remote branch 'dev' from 'origin'.
Switched to a new branch 'dev'
> cd tests && git branch
* (HEAD detached at f860f6f)
  master

不出所料,我仍然是tests:master的领导者。但是,git log已经显示了tests:dev的日志! 现在,我更新子模块:

> cd .. && git submodule update --remote
Submodule path 'tests': checked out 'f860f6fd8dbd613a6569350e5651a34986ae15d6'

由于没有在任何配置中设置分支,因此将拉tests:master。文件夹git log中的tests现在显示tests:master的日志。

> git submodule update --init
Submodule path 'tests': checked out '028bfd53656ccb5c78cb55adec39ce655fc8936c'
> cd tests && git branch
* (HEAD detached at 028bfd5)
  master

这从tests:dev中提取了提交,而git log显示了来自tests:dev的日志。
接下来,我切换回master

> cd .. && git co master
Switched to branch 'master'
Your branch is up to date with 'origin/master'.
> cd tests && git branch
* (HEAD detached from 028bfd5)
  master

所以我仍然处于tests:dev的头上,但是git log再次显示了tests:master的日志!

> cd .. && git submodule update --remote
> git submodule update --init
> cd tests && git branch
* (HEAD detached from 028bfd5)
  master

什么都没改变!

问题1:为什么日志会表现得如此?
问题2:为什么最后一个命令为什么没有拉出子模块的master分支?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...