如何从历史记录中删除二进制文件?

问题描述:

我发现跟踪二进制文件并不是一个好主意。我们的存储库的规模正在以比我想要的更快的速度增长。是否有可能从git清除此文件?如何从历史记录中删除二进制文件?

没有人甚至需要知道它存在。

+0

@svick你是对的。有什么我可以做的吗?我应该删除帖子吗? – flumpb 2012-03-07 14:44:30

+0

这取决于你。如果你认为这个问题对任何人都没用,你可以删除这个问题。或者你可以让其他人关闭它。 – svick 2012-03-07 14:53:41

+0

[完全删除所有Git存储库提交历史记录中的文件]的副本(http://*.com/questions/307828/completely-remove-file-from-all-git-repository-commit-history)以及[如何删除/从Git仓库中的提交历史中删除大文件?](http://*.com/questions/2100907/how-do-i-purge-a-huge-file-from-commits-in-git-history) 。 – 2014-04-04 00:49:10

看到这些很好的问题和他们的答案,它解释了如何使用git filter-branch来做你想做的事情:Drop old commit: `git rebase` causes merge conflictsUpdate a development team with rewritten Git repo history, removing big files

对于未来新的存储大文件,我推荐使用git-annex

+0

感谢您将这些指向我并提及git-annex。我会试试看 – flumpb 2012-03-07 14:45:25

您将需要使用git filter-branch来重写存储库。您需要跨所有用户进行同步,并有停止/重新开始的一天。

即使世界一个叫BFG工具特别是对这项任务作出。

它的优点是sha1在提交消息中被引用也会被更新!

在scala中编写它很容易设置并作为命令行程序运行。