目前我們面臨的情況很奇怪,即服務器上只有65MB的本地克隆存儲庫(GitBlit,但這應該不重要)12 GB的大小。我已經嘗試了不同的想法可能去錯在這裏,這裏是名單:服務器上的Git存儲庫比本地克隆要大得多
- 完成
git ls-tree -r -t -l --full-name HEAD > stats.txt
服務器上的每個分支,並收集信息。 - 用
cut -c53-60 <filename> | grep -v '-' | awk '{ sum += $1 } END { print sum }'
分析結果,總結所有提交的所有文件大小。 - 當我們拿到〜150 MB
的結果,所以我們沒有發現有任何與它大文件提交。
我的本地目錄.git/objects/pack
有一個當前爲17MB的包文件(在GC之前,它是21MB之前)。 服務器上的包文件當前大小爲12 GB。
我已經以正常的方式克隆存儲庫:git clone https://myserver.mycompancy.com/gitblit/r/projectID/projectID.git
並獲得本地副本。可以肯定的是,我做了git fetch --all
沒有變化。
那麼我們可以做些什麼來找到服務器上的包文件更大的原因? GitBlit具有自動GC運行功能,可以收集超過7天的鬆散物體。
更新:我已經做了作爲推薦的命令git verify-pack -v
在我的本地克隆和服務器,和這裏的結果(只統計):結果
- 線
- 地方:60156
- 服務器:16456844
因此,服務器上的包文件的時間更長(〜270倍),這隻能解釋包中的差異。下一步應該找到更多線路的原因是什麼?統計的某些方面更有趣?
git verify-pack -v會告訴你目標大小 – max630
你說的克隆是65MB。你是如何克隆的? –
您是否嘗試在服務器上運行'git gc'? – Claudio