【问题标题】:Git push warning: Unable to migrate objects to permanent storageGit推送警告:无法将对象迁移到永久存储
【发布时间】:2021-09-14 04:18:55
【问题描述】:

我在使用 git 时遇到以下问题 - 当我尝试将提交推送到源(在我的情况下是网络文件夹)时,它会出现以下错误:

警告:无法取消链接 './objects/incoming-a16140/6f': 目录不为空
错误:无法写入 sha1 文件名 ./objects/6f:目录不为空
警告:无法取消链接'./objects/incoming-a16140/cf':目录不为空
错误:无法写入 sha1 文件名 ./objects/cf:目录不为空 到 X:strengs_master.git ! [远程拒绝] bugs/wind_zone_2_Poland -> bugs/wind_zone_2_Poland(无法将对象迁移到永久存储

它以前可以工作,但这里有趣的是(与我读过的类似问题相比)当我尝试 3 到 5 次时,通常它最终会成功推动它。但是每次都得试几次才能成功。

我的git版本是:git version 2.19.0.windows.1

我有权访问服务器上的文件夹,并且我可以通过 ssh 从外部 IP 远程访问,但不存在此类问题。

非常感谢任何有帮助的建议!

【问题讨论】:

  • 永远不要将 Git 存储库保存在某种共享驱动器上。
  • 不将其保存在共享驱动器上是什么意思(应该保存在哪里,以便其他用户可以访问它)?它是一个网络位置,以前也是这样工作的。
  • 您说“在我的情况下是网络文件夹”。这是一个问题。
  • 我错了,但是 git repo 应该保存在某个地方,对吧?如果它在本地服务器上,有什么区别 - 在这两种情况下都有完全访问权限。您能说出正确的方法吗?
  • 网络驱动器通常是指 onedrive、google drive、Dropbox 等。它们会破​​坏 repo 并可能导致您描述的那种问题。

标签: git git-push


【解决方案1】:

首先,确保升级到 Git 2.33.0.2,the latest Git for Windows release

所以在这种情况下,网络驱动器是指我们拥有的本地服务器上的一个文件夹。

其次,检查您的远程源网络路径。应该是这样的:

file:////network/path/to/git-repository'

在 Git 2.11(2017,issue 979)中存在问题,但您的 2.19 版本可能有回归。

【讨论】:

  • 我们更改了存储库位置,现在我们正在使用 ssh 密钥,所以这个问题不再存在。谢谢你的建议!
  • @Georgi 好电话。尽管如此,将 Git 升级到最新版本仍然是一个很好的做法。
猜你喜欢
  • 2020-06-18
  • 2017-07-02
  • 2019-02-04
  • 1970-01-01
  • 2018-04-03
  • 2014-04-28
  • 2011-03-14
  • 1970-01-01
相关资源
最近更新 更多