我熟悉git,最近犯了一個錯誤:從一臺計算機中,我添加了很多大文件(每個100Mb,70GB整),承諾它們並推送給主服務器。現在,我想拉另一臺電腦(使用較小的硬盤驅動器),我卡住了。Git硬盤空間問題
我無法從遠程存儲庫中完全拉出(由於硬盤空間不足),但我也無法釋放膨脹的本地git存儲庫。
我的問題是:我如何將我的存儲庫恢復到不需要大量本地硬盤空間的狀態? (我將從另一臺計算機下次推送時刪除這些文件)。
我熟悉git,最近犯了一個錯誤:從一臺計算機中,我添加了很多大文件(每個100Mb,70GB整),承諾它們並推送給主服務器。現在,我想拉另一臺電腦(使用較小的硬盤驅動器),我卡住了。Git硬盤空間問題
我無法從遠程存儲庫中完全拉出(由於硬盤空間不足),但我也無法釋放膨脹的本地git存儲庫。
我的問題是:我如何將我的存儲庫恢復到不需要大量本地硬盤空間的狀態? (我將從另一臺計算機下次推送時刪除這些文件)。
你需要做的
git reset
或
git filter-branch
用正確的參數。重寫你的歷史。
然後你必須用--force將它推送到遠程倉庫。請注意,對於使用該存儲庫的每個人來說,這會讓事情變得更難一些,因爲他們將不得不進行重新綁定或新的克隆。
git push --force
從您的分支中刪除提交。現在提交將會在您的遠程和包含該提交的計算機上存在另外14天左右。或者你不在乎或者你跑
git gc --prune=now
通過推送刪除文件不會完成這項工作。如果您希望文件消失並刪除回購使用的空間,則需要重寫歷史記錄。 – ThiefMaster 2014-10-29 08:03:47
你有在遠程機器上的shell訪問嗎? – 2014-10-29 08:06:13
也許[BFG](https://rtyley.github.io/bfg-repo-cleaner/)能夠滿足您的需求嗎? (我不確定,我剛剛發現它 - 它是從[github文章](https://help.github.com/articles/working-with-large-files/)引用的) – 2014-10-29 08:15:59