我有一個長期存在的 git 存盤庫,最終從另一個開發人員那里獲得了大量不相關的檔案,這些檔案占用了大量的存盤空間,它使用了像 5gb 這樣愚蠢的東西,因為他包含了資源檔案,有 5000 個 PSD 檔案在回購中。
我已經從 repo 中洗掉了所有這些檔案并將檔案夾添加到 gitignore,我還檢查并洗掉了一堆插件(wordpress 站點)并使用 wpackagist 添加它們,因此它們不會提交給 repo(只有 composer. json 是)。
因此,在所有清理之后,從 repo 中洗掉快取檔案,將所有內容添加到 gitignore,然后將所有內容作為“清理”提交提交,當我推到 gitlab 時,它仍然加起來大約 5gb,我不知道為什么因為我已經洗掉了所有的大檔案和檔案夾。
只是想知道我錯過了什么?它甚至不會推送到 gitlab 上的新倉庫,因為它太大了,最終會切斷連接。
uj5u.com熱心網友回復:
因為您仍然擁有 Git 歷史記錄,所以這些檔案在技術上仍然存在,即使不在您的最新分支上。
您可以洗掉 repo 的所有 Git 歷史記錄,并將當前狀態變為初始狀態:
來自:https ://stackoverflow.com/a/26000395
- 查看
git checkout --orphan latest_branch
- 添加所有檔案
git add -A
- 提交更改
git commit -am "commit message"
- 洗掉分支
git branch -D main
- 將當前分支重命名為 main
git branch -m main
- 最后,強制更新您的存盤庫
git push -f origin main
另請參閱:使當前提交成為 Git 存盤庫中的唯一(初始)提交?
uj5u.com熱心網友回復:
如果您想保留所有歷史記錄,但只是洗掉某些檔案,您應該使用類似git filter-repo(https://github.com/newren/git-filter-repo)的東西。
git filter-repo --invert-paths --path the/big/file/to/forget
有關擁有良好備份以防止意外丟失資料的警告適用。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/414043.html
標籤:
上一篇:如何使用git將未提交的更改從一臺機器傳輸到另一臺機器?
下一篇:遠程檔案名與本地不同
