使用 git 推送到远程时出错

使用 git 推送到远程时出错

我有一台全新的 Centos 6 服务器,并且通过 yum 安装了 git 版本 1.7.1。我使用 apache 的智能 http 方法进行访问。

当我尝试推送到远程服务器时,我得到的结果如下:

$ git push origin master
Password:
Counting objects: 6, done.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (6/6), 436 bytes, done.
Total 6 (delta 0), reused 0 (delta 0)
error: unpack failed: index-pack abnormal exit

我尝试过这些事情,但没有什么区别:

  • chown -R apache:apache /path/to/git/repository (httpd 作为 apache 运行)
  • chown -R apache:用户/路径/到/git/存储库
  • chmod -R 777 /path/to/git/repository(显然不安全,但想消除这个文件权限问题)

我可以尝试什么来推动工作?

答案1

这可能类似于https://stackoverflow.com/questions/4826639/repack-of-git-repository-fails。当存储库很大(1-2GB)并且服务器内存不足时,我见过类似的错误。具体来说,服务器上的“git pack-objects”进程占用了大量内存和处理器时间。

解决方案似乎包括在服务器上重新打包存储库:

git repack -a -d -f --window-memory 10m --max-pack-size 20m

或者调整服务器上的 Git 配置来减少内存使用量,如:

git config pack.windowMemory 10m
git config pack.packSizeLimit 20m

您可能需要使用 10m 和 20m 值,具体取决于可用的内存量。

相关内容