我有一个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客户端仍然无法在远程上找到任何分支,即使是刚刚推送的分支。
这不是我第一次遇到子模块问题,而且我在经典存储库中从未遇到过。
答案 0 :(得分:2)
听起来您的子模块默认配置为不获取任何引用。当您执行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/*
。