2013-01-09 223 views
2

我的git存儲庫開始變得太大了。在單個SSD上,我有一個存儲庫和兩個包含大量二進制文件的克隆,佔用了很多空間。刪除/摺疊git歷史

每天,cron作業都會將主克隆推送到存儲庫以創建長時間更改的歷史記錄。

但是,任何一個月以上的東西都不值得繼續保持。我希望能夠刪除那些舊的提交以節省大量的空間......以編程方式。

我見過大量的例子,使用rebasesquash,一對使用gc,和其他一些非常時髦的。其中大部分要求您手動輸入要刪除的提交標記。

我想從我的存儲庫中刪除所有提交超過30天的提交(我想我必須在其他地方配置掛鉤來摺疊歷史記錄),每個月都從bash腳本中刪除。

+0

我想說的是版本控制系統沒有設計成不保留完整的歷史。事實上,你可以用git做到這一點並不意味着你需要git。 – aragaer

+0

是的,但我仍然找不到更好的東西。 Git勾選所有正確的框! 我應該爲這個任務做另一篇關於Git的替代方案嗎? – CJxD

回答

0

好的如何。它獲得第一次提交然後啓動rebase。只需刪除提交到您的喜好。

# Get first commit 
git log --format=%H | tail -1 | xargs git rebase -i 

ref

+0

二進制文件對於系統是必不可少的。它實際上是一個Minecraft服務器。 – CJxD