亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

重新包裝Git存儲庫失敗

重新包裝Git存儲庫失敗

Git
手掌心 2019-09-20 14:52:33
我有一個git存儲庫駐留在內存有限的服務器上。當我嘗試從服務器克隆現有存儲庫時,我收到以下錯誤hemi@ubuntu:$ git clone ssh://[email protected]/home/hemi/repos/articlesInitialized empty Git repository in /home/hemi/Skrivebord/articles/.git/[email protected]'s password: remote: Counting objects: 666, done.remote: warning: suboptimal pack - out of memoryremote: fatal: Out of memory, malloc failederror: git upload-pack: git-pack-objects died with error.fatal: git upload-pack: aborting due to possible repository corruption on the remote side.remote: aborting due to possible repository corruption on the remote side.fatal: early EOFfatal: index-pack failedhemi@ubuntu:$ 為了處理這個錯誤,我試圖重新打包原始存儲庫(根據此論壇帖子)。但是,它不是重新打包存儲庫,而是描述了如何使用“git pack-objects”命令。hemi@servername:~/repos/articles$ git repack -a -d --window-memory 10m --max-pack-size 100musage: git pack-objects [{ -q | --progress | --all-progress }]        [--all-progress-implied]        [--max-pack-size=N] [--local] [--incremental]        [--window=N] [--window-memory=N] [--depth=N]        [--no-reuse-delta] [--no-reuse-object] [--delta-base-offset]        [--threads=N] [--non-empty] [--revs [--unpacked | --all]*]        [--reflog] [--stdout | base-name] [--include-tag]        [--keep-unreachable | --unpack-unreachable         [<ref-list | <object-list]Git 1.6.5.7安裝在服務器上。
查看完整描述

3 回答

?
Smart貓小萌

TA貢獻1911條經驗 獲得超7個贊

您的解決方案已在本地和遠程為您提供工作副本,但在遠程存儲庫決定再次重新打包時會再次導致問題。幸運的是,您可以設置配置選項,這將減少在兩個存儲庫中重新打包所需的內存量 - 這些實質上會使您在重新打包時添加到默認選項中的命令行參數。因此,您應該登錄到遠程,更改到存儲庫并執行:


git config pack.windowMemory 10m

git config pack.packSizeLimit 20m

您可能希望在本地存儲庫中執行相同的操作。(順便說一下,我猜你的存儲庫非常大,或者這些是內存很少的機器 - 這些值對我來說似乎很低。)


對于它的價值,重新包裝獲得的malloc失敗時非常過去大型的倉庫,我也改變了價值觀core.packedgitwindowsize,core.packedgitlimit,core.deltacachesize,pack.deltacachesize,pack.window和pack.threads,但它聽起來好像你不需要任何進一步的選擇:)


查看完整回答
反對 回復 2019-09-20
?
慕碼人2483693

TA貢獻1860條經驗 獲得超9個贊

由于無法直接訪問存儲庫,因此無法執行重新打包,執行淺層克隆然后逐漸獲取,同時增加深度對我有幫助。


git clone YOUR_REPO --depth=1

git fetch --depth=10

...

git fetch --depth=100

git fetch --unshallow    //Downloads all history allowing to push from repo

希望它仍然可以幫助某人。


查看完整回答
反對 回復 2019-09-20
?
MMTTMM

TA貢獻1869條經驗 獲得超4個贊

我使用以下步驟解決了這個問題。

  1. 已將存儲庫從服務器檢出到我的本地計算機(使用ssh上的原始副本)

  2. 重新打包本地存儲庫
    git repack -a -d --window-memory 10m --max-pack-size 20m

  3. 在服務器上創建了一個空存儲庫
    git init --bare

  4. 將本地存儲庫推送到服務器

  5. 檢查是否可以克隆服務器存儲庫


查看完整回答
反對 回復 2019-09-20
  • 3 回答
  • 0 關注
  • 1139 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號