在git中,什么可能导致错误消息“fatal:无法在子模块路径'Assets/NRSDK'中找到refs/remotes/origin/HEAD修订版“

uemypmqf  于 2023-06-04  发布在  Git
关注(0)|答案(2)|浏览(403)

示例项目:
https://github.com/hpvdt/HMD-nreal/tree/cleanup/dev1
当我 checkout 这个项目并尝试与它的所有子模块同步时,我得到了一个非常令人担忧的错误消息:

git submodule update --remote --recursive
fatal: Unable to find refs/remotes/origin/HEAD revision in 
submodule path 'Assets/NRSDK'

这是因为refs/remotes/origin/HEAD不是一个修订版本,也不是一个分支名称。
什么可能导致这种缺陷?这是git中的bug吗?我使用的是git版本2.40.1.windows.1。

unhi4e5o

unhi4e5o1#

由于子模块一旦进入其中就像一个独立的存储库,因此您可以直接测试子模块。如果您在超级项目的cleanup/dev 1分支上将目录(cd)更改为Assets/NRSDK,则可以运行git show-ref以查看它拥有的所有引用。我还经常运行git fetch -pv来确保看到远程服务器上的内容(-p标志删除远程服务器上不再存在的陈旧引用)。
refs/remotes/origin/HEAD是一个符号引用,表示远程默认分支上的最新提交。如果你在任何一个子模块中运行git show-ref,你 * 应该 * 看到refs/remotes/origin/HEAD被列出-如果没有,你的仓库可能有问题。
--remote标志指示git-submodule update将子模块更新到远程跟踪分支。如果在.gitmodules(或config)中没有指定,它会将子模块更新为默认的远程HEAD,即refs/remotes/origin/HEAD

mcdcgff0

mcdcgff02#

这是存储库结构-当问题被提出时。

  • 从这个截图中你可以看到这个项目下没有子模块。
  • 你的问题中的相关文件夹也不是一个子模块,它只是一个目录

所以不清楚你需要的子模块是什么。

相关问题