2010-08-01 228 views
4

我有一個可用磁盤空間有限的託管GIT存儲庫,但與RedMine系統連接。 我正在打包一些軟件並推送並拉動存儲庫,因此空間不足。現在我需要清理(包需要再次注意)。 考慮到我無法重新創建存儲庫(它與RedMine嚴格鏈接),如何從遠程存儲庫歷史中刪除這些包?如何清理遠程GIT存儲庫?

回答

0

您可以使用git rebase -i將某些提交「擠壓」在一起,以便中間體不會再存儲在存儲庫中,然後將git push -f轉移到服務器上。但是,如果其他人使用同一個存儲庫,重組會導致問題

此外,與之相關的原始版本和文件將被實際從後才垃圾收集完成版本庫中刪除(我想你不能在遠程操作,但它應該自動發生)他們沒有從reflog中引用更長的時間(條目在默認情況下保留90天)。

1

這就是爲什麼您應該考慮不使用VCS(版本控制系統),如Git(這是DVCS)或任何其他VCS進行打包和發佈管理。

請參閱Best practice to store .jar files in VCS (SVN, Git, …)

Nexus這樣的外部工件存儲庫更適合,特別是在清理和刪除軟件的舊版本時。


我不明白你怎麼能在你的回購的提交歷史改變什麼保留表示回購和您的管理平臺系統之間的聯繫:任何變化都會引發新的SHA1參考。