簡體   English   中英

gc 后存儲庫大小不會減少

[英]repository size not reduce after gc

我嘗試減少我的 repo 大小並將其推送到遠程new-remote中。 我嘗試的是

  1. 通過git checkout --orphan clean創建一個新分支
  2. git rm --cached清理那些大文件
  3. 通過git reflog expire --expire=now --all進一步清理 ref,然后是git gc --aggresive --prune=now

我希望通過這種方式我只需要刪除 HEAD 中的大文件,因為此分支不包含任何歷史記錄。但是,在我git push之后,我發現compressing object減少了,但counting object仍然相同。 我能知道為什么會這樣嗎?哪個是new-remote是否會縮小回購的更好指標? 在我的情況下是否需要git filter-branch

如果您在一個新的孤立分支中從頭開始,我會通過克隆您剛剛推送到的遠程存儲庫來檢查存儲庫的實際大小。

通過將遠程克隆到新的本地文件夾中,您將獲得新存儲庫的實際大小。

但是,如果該遠程存儲庫仍然包含所有其他分支(而不僅僅是新的孤立分支),您仍然會在過去的提交中獲得大文件。

然后我會建議:

  • 安裝git filter-repo (python-based)
  • 刪除歷史記錄中的任何大文件: git filter-repo --strip-blobs-bigger-than 2M 基於內容的過濾
  • 強制推送( git push --mirror :確保通知該存儲庫上的任何協作者)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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