【问题标题】:How to clean a remote GIT repository?如何清理远程 GIT 存储库?
【发布时间】:2011-03-23 19:33:54
【问题描述】:

我有一个托管的 GIT 存储库,可用磁盘空间有限,但与 RedMine 系统相连。 我正在打包一些软件并推拉存储库,我的空间不足。现在我需要清洁(不再需要这些包裹)。 考虑到我无法重新创建存储库(它与 RedMine 的链接过于严格),我如何从远程存储库历史记录中删除这些包?

【问题讨论】:

    标签: git repository


    【解决方案1】:

    这就是为什么您应该考虑不使用 VCS(版本控制系统),例如 Git(它是一种 DVCS)或任何其他 VCS 来进行打包和发布管理。

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

    Nexus 这样的外部工件存储库更适合,尤其是在清理和删除软件的旧打包版本时。


    我看不出如何在你的 repo 的 Git 历史记录中更改任何内容同时保留所述 repo 和你的 RedMine 系统之间的链接:任何更改都会触发新的 SHA1 引用。 p>

    【讨论】:

      【解决方案2】:

      您可以使用git rebase -i 将一些提交“压缩”在一起,这样中间件就不会再在存储库中,然后git push -f 将其放到服务器上。但是如果其他人使用相同的存储库,rebase 会导致问题。

      此外,只有在垃圾收集完成后,原始修订和与它们相关的文件才会从存储库中实际删除(我认为您不能远程执行此操作,但它应该自动发生) reflog 不再引用它们(条目默认保留 90 天)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-02-01
        • 2011-05-06
        • 2017-10-01
        • 2013-01-04
        • 2019-05-13
        • 1970-01-01
        相关资源
        最近更新 更多