[英]Why won’t git further reduce the repository size?
我有一個只有一個提交的存儲庫,其簽出大小為95M。 但是,我無法獲得低於213M的.git文件夾大小。 但是,如果我創建一個具有相同文件內容的新存儲庫,我會得到一個只有38M的.git文件夾。
有沒有辦法git重建它的對象,以便在創建新的存儲庫時獲得更符合圖形的大小?
我嘗試了git gc --prune=now --aggressive
和git repack -adf --window=250 --depth=250
來減少存儲庫大小。 他們將存儲庫從最初的220M下調。
我想git必須保留一個防止垃圾收集的引用,但我不知道它們會在哪里。 我已經刪除了所有的遙控器和分支機構,除了'refs'下我目前的分支機構之外我什么都看不到
$ ls -R .git/refs
.git/refs/:
heads tags
.git/refs/heads:
master
.git/refs/tags:
我從具有更長歷史的現有存儲庫創建了存儲庫。 我使用checkout --orphan
來創建一個新的無基礎分支,然后做了一個提交,用存儲庫的狀態創建一個新的提交。 然后我刪除了原始分支並在運行gc
之前刪除了遙控器。
$ git --version
git version 1.9.4.msysgit.0
運行:
git reflog expire --all --expire=now
git gc --prune=now --aggressive
將文件夾降至27M。 感謝@torek建議清理reflog的評論!
我原以為reflog不是問題,因為如果我運行git reflog
我只看到一個條目,我的單個提交。 為了回應@ torek的建議,我找到了如何從git存儲庫中刪除未使用的對象? 這是我找到清除reflog的命令的地方。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.