服务器不允许请求未发布的对象

问题描述 投票:1回答:1

我知道这个问题以前曾被问过,但是我找到了所有答案只是为了给我快速解决问题的方法,或者是引起问题的原因以及如何解决的令人困惑的解释。

这是我遇到此错误的方式。我的一个队友在我们的仓库中推送了对子模块的更改。从母版git status拉出后,在我们的子模块中显示了新的提交:

modified: path/to/submodule/submodule_name (new commits)

所以我决定通过运行来更新子模块

git submodule update path/to/submodule/submodule_name-here is the doc for this command

至此我得到了错误

Fetched in submodule path 'path/to/submodule/submodule_name', but it did not contain ... Direct fetching of that commit failed

谷歌搜索后,我找到了解决问题的不同答案:

  1. github
  2. superuser
  3. stackoverflow

超级用户是使我更加了解此问题的链接,而github只是将运行该问题的命令交给了我-git submodule sync

现在,我对更改在git status中的显示方式仍然有些困惑,但是当我尝试更新服务器时却不知道该提交。 git submodule sync怎么做才能使提交可用?

git github git-submodules
1个回答
0
投票

您的错误消息确实提到:

dit did not contain ... Direct fetching of that commit failed

这是在子模块原始克隆的存储库中完成的提交...通常不提交回其远程存储库。但是子模块存储库的新状态记录在父存储库中,该状态已被推送。

这是什么意思:

父存储库引用子模块存储库的提交,但从未将其提交到子模块远程URL:从克隆进行更新将:

  • 更新子模块参考
  • 尝试使用该引用更新子模块内容,但失败。

您的队友确实推送了父存储库更改(特别是子模块的新状态),但没有推送该子模块内完成的提交。

© www.soinside.com 2019 - 2024. All rights reserved.