
我有一台新的 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 值,具體取決於可用內存量。