簡體   English   中英

如何在Github上減少repo的大小

[英]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

  1. 從您提交它的分支上的本地歷史記錄中刪除它。 一種方法是使用git commit --amend如果它是你的HEAD提交; 另一個是git rebase --interactive
  2. 強制將更新的分支推送到github。

     git push --force github 

    (其中github是GitHub的遙控器名稱)。

這會將其從活動歷史記錄中刪除。 要實際回收空間,GitHub將需要進行垃圾收集。 如果他們不自動執行此操作,我不確定如何明確地執行此操作。 您可能需要提交支持請求。

暫無
暫無

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

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