[英]How to reduce the size of a repo on Github
我不小心將一些大型測試wav文件提交到我的存儲庫中,他們在我的Github帳戶上占用了大量空間。 如何從歷史記錄中刪除這些文件?
注意:這些文件是在一段時間之前提交的,並不在HEAD提交中。
沒有修改歷史記錄就沒有辦法刪除它們,所以如果有人撤消了更改,你可能不得不處理那些混亂 - 請參閱man git-rebase
上游 rebase 恢復 。 這可能非常糟糕,取決於您的工作流程 - 您可能必須讓每個人都知道他們需要切換到“新”主分支,重新定位正在進行的任何工作。
如果提交仍在提示中,您可以在它之前重置為提交:
git reset --hard HEAD^
或修改它:
git rm test.wav
git commit --amend
但由於它不再是小費,你最好的選擇可能是通過交互式底板來做到這一點:
git rebase -i <commit-before-mistake>
在要修復的提交上將“選擇”更改為“編輯”,然后使用它! (如果可以,甚至刪除整個提交)*
在你選擇了這些中的任何一個之后,你將不得不強行推動,因為它不再是快進:
git push -f origin
*如果您隨后對這些文件進行了修改,那么在您繼續使用rebase時會遇到問題。 他們應該直截了當地處理,因為你只是希望文件消失。 當然,如果從那以后有一百次提交都會導致沖突,你可以看看git-filter-branch
。 手冊頁中的相關示例是:
git filter-branch --index-filter ’git rm --cached --ignore-unmatch filename’ HEAD
git commit --amend
如果它是你的HEAD提交; 另一個是git rebase --interactive
。 強制將更新的分支推送到github。
git push --force github
(其中github
是GitHub的遙控器名稱)。
這會將其從活動歷史記錄中刪除。 要實際回收空間,GitHub將需要進行垃圾收集。 如果他們不自動執行此操作,我不確定如何明確地執行此操作。 您可能需要提交支持請求。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.