2010-08-01 179 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参考。