3

我一直在使用 heroku 和 git 通过基本工作流程更新 facebook 应用程序。我是唯一一个工作的人,唯一发生的事情是每周一次新的二进制文件。git commit -am “新更新” git push heroku

二进制文件已增长到大约 30 MB。最近所有的推送命令都像这样失败:计数对象:7,完成。压缩对象:100% (4/4),完成。致命:sha1 文件''写入错误:无效参数错误:无法将一些参考推送到'mysecretgitplace'

我查看了很多地方,发现这是一个非常常见的问题,似乎没有什么特别的原因,可能是任何原因。现在,随着时间的推移唯一改变的是二进制文件的大小增加和提交的数量增加,它可能就是这样。

所以现在我想尝试通过删除/销毁/删除这个二进制文件的历史来减少我正在使用的服务器空间(完全除了当前版本(在服务器上的头/主服务器上)。我会除了每周提交二进制文件外,每隔一段时间就这样做一次。

有没有让我这样做的命令?(提交新的二进制文件后,无需重新添加文件的整个“已删除”历史记录)

(很明显,我只想在我的游戏上工作,而不是为所有的服务器和版本控制而烦恼。)

4

1 回答 1

1

Git 允许您通过过滤删除部分历史记录。

在您的情况下,第一个示例应该可以解决问题:git filter-branch --index-filter 'git rm --cached --ignore-unmatch filename' HEAD.

尽管如此,您应该非常仔细地阅读此命令以及需要在您的存储库和远程执行哪些操作才能使其生效(特别是,您必须git gc在本地存储库中使用)。

您可以在github 帮助部分阅读更多相关信息。

附带说明一下,git 在管理大文件方面并不是很好(寻找git annex潜在的解决方案)。

于 2012-10-15T08:42:37.147 回答