Git,错误:远程解压缩失败:无法创建临时对象目录-通过创建新分支

Stö*_*her 5 git git-push git-commit git-branch git-repo

美好的一天。

我尝试在我的仓库中创建一个新的分支。

我做的:

Git分支事件

Git Checkout事件

那行得通。所以我改变了一些文件

Git状态

Git添加-全部

Git Commit -m“提交”

效果很好,但我尝试将其推开,但没有效果:

Git push -u起源事件

这是错误:

枚举对象:9,完成。
计数对象:已完成100%(9/9)。
增量压缩最多使用4个线程。
压缩对象:100%(5/5),已完成。
写入对象:100%(5/5),716字节| 716.00 KiB / s,已完成。
总计5(增量4),重用0(增量0)
错误:远程解压缩失败:无法创建临时对象目录
To http://git.int.censoredlink/scm/freeb/freebrep.git
![远程拒绝]事件->事件(解压缩器错误)
错误:无法将某些引用推送到' http://stsu@git.int.censoredlink/scm/freeb/freebrep.git '

我不知道为什么它不起作用。

我对存储库具有管理员权限。我审查了该回购的链接,因为它的“带私人链接的实习生回购”希望还可以。

希望可以有人帮帮我。

kiw*_*123 27

90% 的可能性是权限问题。

  1. 登录到远程服务器。
  2. 导航至所在/scm/freeb位置freebrep.git
  3. 呼叫chown -R yourusername freebrep.git (您的用户名是 stsu)
  4. 再试一次。现在它应该允许写入对象。


tor*_*rek 6

此错误信息:

error: remote unpack failed: unable to create temporary object directory
Run Code Online (Sandbox Code Playgroud)

表示服务器(不是您的Git)上的Git存储库空间不足,或遇到类似的服务器问题1或安装不正确。也就是说,给定:

To: http://git.int.censoredlink/scm/freeb/freebrep.git
Run Code Online (Sandbox Code Playgroud)

您将必须登录到提供HTTP流量的计算机,git.int.censoredlink然后转到scm/freeb/freebrep.git目录,然后在此处更正安装。这很可能是权限问题:接收方的Git必须能够在对象区域中创建一个incoming-XXXXXXXs替换为唯一标识符的命名目录,然后在该目录中创建一个pack子目录。

通过某种隔离过程,所有传入的对象和包文件都放在这些目录中,直到服务器端Git挂钩对引用名称更新请求感到满意为止。如果推送失败,则仅删除隔离目录。如果推送成功,则隔离的对象和/或包文件将迁移(并调整薄包)到常规对象存储区域。请注意,即使隔离过程成功,迁移也可能失败。但是,如果这样做,则会向客户端报告另一个错误。(此错误也必须在服务器上更正。)

注:这是相当不寻常的推到http://,而不是https://ssh://网址。检查您的服务器配置,查看谁将拥有由此创建的各种文件,以及Web服务器将拥有哪些权限。


1如果硬盘驱动器发生故障,Linux有时会将该驱动器和/或其文件系统标记为只读。或者,即使您有磁盘空间,也可以用尽inode。许多不同的根本原因都将导致客户端上观察到相同的行为。如果您是Linux管理员,正在检查服务器,请查找系统日志消息,并考虑两者dfdf -i输出。

  • 不完全正确,但我还是赞成这一点,因为它包含快速调试此问题所需的线索:“mkdir对象/传入-XXXXXX”在服务器管理员需要修复它的情况下显示“设备上没有剩余空间”我刚刚碰到了。如果您可以重新措辞或重组答案,那就太好了。(我同意你的所有观点,包括最后一段,只是这不是造成这种效果的唯一原因。) (4认同)
  • @mirabilos 这是*另一个*可能的原因。错误的权限是更典型的问题。 (2认同)
  • 当然……如果它以前从未起作用过,但如果这种情况突然开始发生,那就不行了 ☻ (2认同)

Gha*_*ghi 5

如果您是root user请先将用户更改为your git user,然后init your git directory

  1. 如果你是 root -> $ [root@server ~]#
  2. 更改用户-> $ su - 用户名
  3. 初始化一个 git repo -> [username@server ~] $ git init --bare git-repo.git
  4. 从客户端推送-> 现在您可以从客户端推送:
    git remote add yourAliasName ssh://username@IP-or-HOST:sshPort/home/username/git-repo.git

注意:
我假设您public/private key已经在客户端中创建了一个并将公钥传递给/home/username/.ssh/authorized_keys服务器文件。否则,您必须在步骤 (4) 之前执行此操作。