【问题标题】:Fetching remote from a submodule finds no branch从子模块获取远程找不到分支
【发布时间】:2020-02-28 04:37:29
【问题描述】:

我有一个 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 git-submodules git-fetch


    【解决方案1】:

    听起来您的子模块默认配置为不获取任何参考。当您执行 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/*

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-05-22
      • 2012-07-18
      • 2019-02-26
      • 2013-11-27
      • 1970-01-01
      • 2012-03-21
      相关资源
      最近更新 更多