【问题标题】:git push error: pack-objects died with strange errorgit push 错误:pack-objects 死于奇怪的错误
【发布时间】:2010-10-17 15:58:34
【问题描述】:

我已经成功推送到这个 repo 有一段时间了,它开始从任何地方给我以下错误,任何想法为什么会发生?

Ishaqs-Mac:source ishaq$ git push
Counting objects: 68, done.
Delta compression using 2 threads.
Compressing objects: 100% (50/50), done.
Connection to SERVER closed by remote host.
error: pack-objects died with strange error
error: failed to push some refs to 'SERVER:PROJECT.git'

感谢您的时间和帮助。

【问题讨论】:

  • 我在 Mac OS X 10.5 Leopard 上使用 Git 版本 1.6.2,我的仓库中最大的文件位于 .git/objects/pack -r--r--r-- 1 ishaq 员工 8.1M 4 月 5 日 18:20 pack-7feb0b56fcf48eb328f0d4f1a734064d15f9051c.pack

标签: git


【解决方案1】:

要检查的几点:

  • 推送端的磁盘空间问题(如 $GIT_DIR 或 $TMP_DIR 中的“磁盘空间不足”?)

  • 正确的问题(在哪个帐户下执行流程?)

  • 特定于平台的问题:在 Mac OS 上,您可以使用 MacPort configuration problem

  • 推送端的 git 与远程站点上的 git 之间的版本差异(例如,如果您尝试使用 git 二进制文件在远程对等点上推送子模块,不知道子模块,你可能会遇到这样的麻烦)

注意:由于是error message associated with the pack_object() function,因此请检查git pack 是否仍然有效。

static void pack_objects(int fd, struct ref *refs)
{
    for (;;) {
        int status, code;
        pid_t waiting = waitpid(pid, &status, 0);
        if (waiting < 0) {
            if (errno == EINTR)
                continue;
            return error("waitpid failed (%s)", strerror(errno));
        }
        if ((waiting != pid) || WIFSIGNALED(status) ||
            !WIFEXITED(status))
            return error("pack-objects died with strange error");
        code = WEXITSTATUS(status);
        if (code)
            return -code;
        return 0;
    }
}

注意之二:当pushing to GitHub(2009 年 1 月下旬)出现此错误消息时,最近有一些案例

【讨论】:

  • 谢谢,-我已经通过安装程序(不是 Mac 端口)安装了 git,我还能遇到这个 MacPorts 特定的问题吗? - 存储库与其他所有存储库具有相同的权限 - 服务器具有 1.5.4,但如果这是问题所在,它应该以前就存在 - git repack 工作正常
  • 我刚刚将 repo 克隆到不同的位置,并尝试推送,它工作正常。不知道现有副本有什么问题,它有 7,8 个本地提交,所以我不能丢弃它:(
【解决方案2】:

很遗憾,错误消息没有多大帮助。但是您的问题不是来自 Git 包;而是来自 Git 包。第一条错误消息来自 OpenSSH,它能够访问远程服务器但无法登录:

Connection to SERVER closed by remote host.

这不是密码问题(有不同的错误消息),但可能是权限问题(例如没有适当权限的组,我偶尔会在 OSX 上看到)或无法识别的帐户名(在某些系统报告密码问题)或超时。您可以尝试从命令行登录:

$ ssh username@servername

发现您遇到了什么样的问题。您也可以尝试修复权限; OS X 似乎特别容易受到反复出现的权限问题和从奇怪的组中运行的影响。

旁注——由于您使用的是 Leopard,我建议您安装 SSHKeychain,它管理 SSH 身份并将您的 SSH 密码短语自动存储在系统钥匙串中。它不会帮助您解决当前的问题,但可能会防止将来出现类似问题。

【讨论】:

  • 嗨保罗,我已经安装了钥匙串,我可以通过我的钥匙登录到我的服务器:-) 已经克隆到不同的位置,它允许我从那里推送。尝试创建补丁并将其应用到该位置,但没有成功,今天出现了尾随空格错误我从办公室推送了它
  • 有趣。我看不出这是如何导致这些错误消息的,但正如我所说,错误消息并没有多大帮助。恭喜你解决了。
【解决方案3】:

如果您碰巧使用了 gerrit 等代码审查工具,并且在尝试推送代码时遇到这种情况,这可能是因为 java 程序通常在内存管理方面非常出色。而且你不会在互联网上找到任何可以帮助你的人,直到你绝望地决定杀死 gerrit 并重新启动它。然后,你的问题就消失了......直到几天后你需要再次重启gerrit来解决同样的问题。

Java 很棒。

【讨论】:

  • 不,正如我所说,当我从家以外的任何其他地方(办公室、咖啡店等)推动时,唯一困扰我的事情是,它工作正常。不在家工作。我不在java上。
猜你喜欢
  • 1970-01-01
  • 2013-03-24
  • 2013-09-20
  • 1970-01-01
  • 1970-01-01
  • 2013-09-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多