簡體   English   中英

為什么git不會進一步減少存儲庫大小?

[英]Why won’t git further reduce the repository size?

我有一個只有一個提交的存儲庫,其簽出大小為95M。 但是,我無法獲得低於213M的.git文件夾大小。 但是,如果我創建一個具有相同文件內容的新存儲庫,我會得到一個只有38M的.git文件夾。

有沒有辦法git重建它的對象,以便在創建新的存儲庫時獲得更符合圖形的大小?

我嘗試了git gc --prune=now --aggressivegit 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM