我有一台全新的 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 值,具体取决于可用的内存量。