0

stackoverflow 上已经有几个非常相关的问题(下面链接了一些),但我无法解决我的特定问题。

我与同事共享一个存储库,他们推送了巨大的数据文件/图像,将远程存储库的大小增加到 14 GB。后来,这些文件被删除,只是rm filename将本地存储库的大小调整为合理的大小。但是,当我在线查看时,存储库的大小仍然是 14 GB。

我试图减少存储库大小是这里建议的:

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

但这只会影响我本地存储库的大小。

这里的答案也无济于事,因为这些文件不是在我自己的计算机上而是在同事的计算机上删除的。

我还没有尝试过,但可能有效的是删除此处描述的所有提交历史记录。但是,我实际上会保留所有提交历史记录,并删除由rm filename不属于我自己的机器创建的所有垃圾。

是否有任何解决方案(摆脱在其他本地机器上创建的垃圾以减小远程存储库的大小)而不删除所有提交历史记录?

编辑:

在评论中的@torek 链接中,我找到了一个命令来删除与某个文件相关的提交。然后我试图摆脱所有关于图像的提交,例如.png。我使用了以下命令:

git filter-branch --tree-filter 'rm -f *.png' HEAD

但是,然后我收到消息:

警告:参考 'refs/heads/master' 未更改

我将如何正确使用它?

4

0 回答 0