【问题标题】:Git repository is too large, even after deleting all old commits [duplicate]Git 存储库太大,即使在删除所有旧提交后也是如此 [重复]
【发布时间】:2020-04-11 23:30:39
【问题描述】:

所以我在一个主 git 存储库的分支上工作,现在它有 4 GB 大,因为我曾经错误地推送了原始数据。 所以我所做的是使用git reset--hard@(10) 返回10 次提交,然后使用git push -f。 现在我的提交历史是干净的,但 repo 仍然是 4gb 大。

如何删除最后 10 次提交。老实说,我什至不介意将我的分支完全恢复到与 master 相同的状态。

【问题讨论】:

  • 最终会处理by the garbage collector。除非您确实需要现在回收该存储空间,否则您可能不需要做任何事情。
  • @JoachimSauer 感谢您的回答。实际上,我真的很想立即获得存储空间,因为我已经在处理这个问题 2 天了。我尝试运行git gc,仍然没有
  • 基本上git gc 应该可以工作,但是如果您已经推送到远程存储库,则需要在 那个 存储库上执行git gc(因为它不是更改的操作关于你推动的任何事情)。
  • 嗨所以基本上我的本地分支副本缩小到 170mb,但在 git 上它说项目仍然是 4GB 大。但是,当我下载它时,它也只有 170mb.... 有什么建议吗?

标签: git


【解决方案1】:

Git 有一个reflog,它保留了对您已经使用了一段时间的提交和 HEAD 的引用。这些条目仍然包含指向您提交的链接,因此git gc 不会删除它们(目前)。

您可以通过运行以下命令来强制执行此操作:

git reflog expire --expire=now --all
git gc --prune=now

【讨论】:

  • 嗨所以基本上我的本地分支副本缩小到 170mb,但在 git 上它说项目仍然是 4GB 大。但是,当我下载它时,它也只有 170mb.... 有什么建议吗?
【解决方案2】:

几个月前我遇到了同样的问题。然后我找到了一个很棒的工具来清理 git repo。它真的很好用。

https://rtyley.github.io/bfg-repo-cleaner/

【讨论】:

  • 谢谢,一个简短的问题。当我使用命令$ java -jar bfg.jar --strip-blobs-bigger-than 100M some-big-repo.git。我怎样才能参考我的分支some-big-repo.git
  • 切换到您的分支并尝试
猜你喜欢
  • 2011-01-01
  • 2021-12-30
  • 1970-01-01
  • 2012-01-03
  • 2021-05-24
  • 1970-01-01
  • 2018-02-10
  • 1970-01-01
  • 2021-05-28
相关资源
最近更新 更多