我正在尝试在我的存储库中创建一个新分支。
我这样做了:
git branch events
git Checkout events
成功了。所以我更改了一些文件并做了:
git Status
git add --all
git commit -m "Commit"
效果很好,但我试图 push 它,但没有效果:
git push -u origin events
这是错误:
Enumerating objects: 9, done.
Counting objects: 100% (9/9), done.
Delta compression using up to 4 threads.
Compressing objects: 100% (5/5), done.
Writing objects: 100% (5/5), 716 bytes | 716.00 KiB/s, done.
Total 5 (delta 4), reused 0 (delta 0)
error: remote unpack failed: unable to create temporary object directory
To http://git.int.censoredlink/scm/freeb/freebrep.git
! [remote rejected] events -> events (unpacker error)
error: failed to push some refs to 'http://stsu@git.int.censoredlink/scm/freeb/freebrep.git'
我不知道为什么它不起作用。
我拥有 Repo 的管理员权限。我审查了 repo 协议(protocol)的链接,因为它是一个带有私有(private)链接的内部 repo 协议(protocol)。
最佳答案
此错误信息:
error: remote unpack failed: unable to create temporary object directory
表示服务器(不是您的 Git)上的 Git 存储库空间不足,或遇到类似的服务器问题,1 或安装不正确。也就是说,给定:
To: http://git.int.censoredlink/scm/freeb/freebrep.git
您必须在 git.int.censoredlink
登录到提供 HTTP 流量的机器,然后走到 scm/freeb/freebrep.git
目录,并在那里更正安装。这很可能是权限问题:接收 Git 必须能够在对象区域中创建一个名为 incoming-XXXXXX
的目录,其中 X
替换为唯一标识符, 然后在该目录中创建一个 pack
子目录。
所有传入的对象和包文件都放在这些目录中,在某种隔离过程中,直到服务器端 Git Hook 满足引用名称更新请求。如果推送失败,则简单地删除隔离目录。如果推送成功,隔离的对象和/或打包文件将迁移(和精简包调整)到正常的对象存储区域。请注意,即使隔离过程成功,迁移也可能失败;但如果这样做,您会收到一个不同的错误报告给客户端。 (此错误也必须在服务器上更正。)
注意:推送到 http://
而不是 https://
或 ssh://
URL 是相当不寻常的。检查您的服务器配置,看看谁将拥有由此创建的各种文件,以及 Web 服务器将拥有什么权限。
1如果硬盘驱动器发生故障,Linux 有时会将驱动器和/或其文件系统标记为只读。或者,即使您有磁盘空间,也可能会用完 inode。许多不同的根本原因都会导致在您的客户端观察到相同的行为。如果您是检查服务器的 Linux 管理员,请查找系统日志消息,并考虑 df
和 df -i
输出。
关于Git,错误 : remote unpack failed: unable to create temporary object directory - By creating new Branch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51495092/