从子模块中获取远程信息找不到分支

Fetching remote from a submodule finds no branch

我有一个 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/*.