裸存储库上的 git gc 不清理

标签 git version-control

我有一个 2GB 的 Git 裸仓库,有 30000 个提交。不幸的是,多年来我很早就添加了一些大文件,现在我已经使用 git filter-branch 清理了这些文件 - 参见例如this link . 罪魁祸首的识别 - 参见例如this link 我还使用 git branch -D BRANCH-NAME 清除了许多旧的“测试尝试”分支。现在乐趣开始了:-)

在我的裸仓库中,git gc --aggressive --prune=yes 似乎没有减少裸仓库的目录大小,但是如果我克隆裸仓库并运行 git gc --agressive --prune=yes 然后我的目录大小下降到 50 MB(这真的很好)。

我也试过this nice idea , 但它没有显示 SHA 或任何其他关于在哪里切刀的线索。

我真的可以使用您的意见以系统的方式安全地摆脱我的裸仓库。

我阅读并尝试了更多相关链接,但没有帮助 this , this , this

最佳答案

这可能是您的命令所缺少的:

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

也试试:BFG Repo-Cleaner

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

关于裸存储库上的 git gc 不清理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48354367/

相关文章:

tfs - Visual Studio 2017和TFS可以 check out 哪些文件以及向谁 checkout

git - 如何在 Gitlab 上将 Master 分支中的文件移动到 Master 分支中的文件夹

git - 我可以强制 git branch --contains <tag> 不打印星号吗?

r - 更改已在 Windows 中进行版本控制的 RStudio 项目的 Git 协议(protocol)

git - 在 Debian Lenny 服务器上安装 Git

windows - 为什么 GIT 在从 bash 命令提示符运行时不使用 core.editor 和 commit.template 配置值?

git - 删除不需要的 .keep 文件

sql-server - 如何对SQL Server数据库进行版本控制?

git - 如何在 Refactor > Rename 上避免 PhpStorm 暂存文件

git - 查看 git 分支上是否存在特定提交