Git推送失败,寻找部分文件历史记录删除

时间:2012-10-15 07:46:10

标签: git heroku binary push history

我一直在使用heroku& amp;饭桶。我是唯一一个正在研究它的人,唯一发生的事情是每周一次新的二进制文件。 git commit -am“new update” git push heroku

二进制文件已增长到大约30 MB。最近所有的push命令都失败了: 计数对象:7,完成。 压缩对象:100%(4/4),完成。 致命:sha1文件''写错误:参数无效 错误:未能将某些引用推送到'mysecretgitplace'

我在许多地方看过,发现这是一个非常普遍的问题,似乎是由于没有特别引起的,可能是任何事情。 现在,随着时间的推移,唯一改变的是二进制增加的大小和提交的数量增加它可能就是这样。

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

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

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

1 个答案:

答案 0 :(得分:1)

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

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

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

您可以在github help section

中详细了解相关信息

作为旁注,git在管理大文件方面并不是很好(请查看git annex以寻找潜在的解决方案)。