2014-10-29 66 views
3

我熟悉git,最近犯了一個錯誤:從一臺計算機中,我添加了很多大文件(每個100Mb,70GB整),承諾它們並推送給主服務器。現在,我想拉另一臺電腦(使用較小的硬盤驅動器),我卡住了。Git硬盤空間問題

我無法從遠程存儲庫中完全拉出(由於硬盤空間不足),但我也無法釋放膨脹的本地git存儲庫。

我的問題是:我如何將我的存儲庫恢復到不需要大量本地硬盤空間的狀態? (我將從另一臺計算機下次推送時刪除這些文件)。

+2

通過推送刪除文件不會完成這項工作。如果您希望文件消失並刪除回購使用的空間,則需要重寫歷史記錄。 – ThiefMaster 2014-10-29 08:03:47

+0

你有在遠程機器上的shell訪問嗎? – 2014-10-29 08:06:13

+0

也許[BFG](https://rtyley.github.io/bfg-repo-cleaner/)能夠滿足您的需求嗎? (我不確定,我剛剛發現它 - 它是從[github文章](https://help.github.com/articles/working-with-large-files/)引用的) – 2014-10-29 08:15:59

回答

1

你需要做的

git reset 

git filter-branch 

用正確的參數。重寫你的歷史。

然後你必須用--force將它推送到遠程倉庫。請注意,對於使用該存儲庫的每個人來說,這會讓事情變得更難一些,因爲他們將不得不進行重新綁定或新的克隆。

git push --force 

從您的分支中刪除提交。現在提交將會在您的遠程和包含該提交的計算機上存在另外14天左右。或者你不在乎或者你跑

git gc --prune=now 
+0

但是這並沒有解決如何首先克隆回購問題? – 2014-10-29 17:11:13

+0

@ChrisMartin爲什麼會有這個問題?他有電腦1,電腦2和電腦遙控器。他必須糾正1,然後將其克隆到2,然後才能克隆。 – iveqy 2014-10-29 20:09:16

+0

非常感謝您的答覆。我嘗試了你的建議 - 但確實有奇怪的效果,我無法修剪數據。 Git開始壓縮東西,並告訴我它沒有足夠的可用空間(它沒有 - 這是我想首先修剪的原因:)。我想,我需要刪除所有內容並克隆當前存儲庫... – Drey 2014-10-30 11:06:16