我有一个GitHub存储库,已作为另一个存储库的子模块克隆到了我的计算机上。
我拥有所有文件并在本地提交,但在远程上,我的git客户端认为没有任何分支。 (git branch -r
什么都不显示)
git fetch origin
给出此结果:
git -c diff.mnemonicprefix=false -c core.quotepath=false --no-optional-locks fetch origin
From https://github.com/Estecka/ChainMaths
* branch HEAD -> FETCH_HEAD
Completed successfully.
但是实际上,我仍然找不到任何分支。
尝试推送我的本地更改成功运行,我可以在GitHub网站上看到我的更改,但是即使那样,我的git客户端仍然无法在远程上找到任何分支,即使是刚刚被推送的分支。
这不是我第一次遇到子模块问题,而且我从未在经典存储库中遇到过。
听起来您的子模块默认配置为不获取任何引用。当您在不指定要提取任何内容的情况下执行git fetch origin
时,Git会读取remotes.origin.fetch
变量并提供该变量。由于未指定任何内容,因此Git只会读取远程HEAD
引用并将其填充到FETCH_HEAD
中,在这种情况下,这不是您要查找的内容。
如果想要将远程磁头取到refs/remotes/origin
的标准行为,则可以运行git config remote.origin.fetch +refs/heads/*:refs/remotes/origin/*
,然后再次运行git fetch origin
。如果您只想这样做一次,而不是默认情况下,则可以运行git fetch origin +refs/heads/*:refs/remotes/origin/*
。