3 回答

TA貢獻(xiàn)1851條經(jīng)驗 獲得超3個贊
我最近把錯誤的遠(yuǎn)程存儲庫拉到了本地(git remote add ...和git remote update)。刪除不需要的遠(yuǎn)程引用,分支和標(biāo)簽后,我的存儲庫中仍然有1.4GB(?。┑睦速M(fèi)空間。我只能通過克隆來擺脫它git clone file:///path/to/repository。請注意,file://克隆本地存儲庫時會產(chǎn)生一些差異 - 只會復(fù)制引用的對象,而不是整個目錄結(jié)構(gòu)。
編輯:這是Ian的一個班輪,用于重新創(chuàng)建新回購中的所有分支:
d1=#original repo
d2=#new repo (must already exist)
cd $d1
for b in $(git branch | cut -c 3-)
do
git checkout $b
x=$(git rev-parse HEAD)
cd $d2
git checkout -b $b $x
cd $d1
done

TA貢獻(xiàn)1817條經(jīng)驗 獲得超6個贊
git gc已經(jīng)做了git repack所以沒有任何意義在手動重新包裝,除非你要傳遞一些特殊的選項。
第一步是查看大多數(shù)空間(通常情況下)是否是對象數(shù)據(jù)庫。
git count-objects -v
這應(yīng)該會報告存儲庫中有多少個解壓縮的對象,它們占用了多少空間,有多少包文件以及它們占用了多少空間。
理想情況下,在重新打包之后,您將沒有解壓縮的對象和一個打包文件,但是當(dāng)前分支不能直接引用的某些對象仍然存在和解壓縮是完全正常的。
如果您有一個大包裝并且想知道占用空間的是什么,那么您可以列出構(gòu)成包裝的對象以及它們的存儲方式。
git verify-pack -v .git/objects/pack/pack-*.idx
請注意,verify-pack它采用索引文件而不是包文件本身。這給出了包中每個對象的報告,它的真實大小和包裝大小,以及關(guān)于它是否已經(jīng)“完整”的信息,如果是,那么三角鏈的起源。
要查看存儲庫中是否存在任何異常大的對象,您可以在第四列的第三列(例如| sort -k3n)上以數(shù)字方式對輸出進(jìn)行排序。
通過此輸出,您將能夠使用該git show命令查看任何對象的內(nèi)容,盡管無法準(zhǔn)確查看引用該對象的存儲庫的提交歷史記錄中的位置。如果您需要這樣做,請嘗試這個問題。
- 3 回答
- 0 關(guān)注
- 951 瀏覽
添加回答
舉報