如何永久删除整个团队的大文件

我的团队中有人将大文件推送到git服务器,团队中的每个人现在都拥有大文件的项目克隆。

我遵循http://help.github.com/removing-sensitive-data/中的指南,它在我的本地源代码树和远程服务器上工作。 但是一旦其他人从远程服务器获取新数据,他将通过向服务器推送新提交来轻松地重新引入大文件。

通常情况下,团队成员会做以下事情与他人分享他的承诺:

git fetch origin
git rebase origin/master
git push origin

在“重新分配”的步骤中,旧的大文件将在他的本地提交中重新引入。 当然,直接的方法是在我删除大文件后要求团队中的每个人重新克隆该项目,但不是每个人都乐意这样做。 除了为每个人重新整理整个项目之外,我正在寻找其他方法。

有什么建议么? 谢谢。


看看过滤树。 您需要编辑引入该文件的提交。 一旦完成,每个人都可以获取。 这将使其非常快速的远程分支在其回购协议中 - 每次删除违规文件后的提交将会有所不同。 当他们改变他们在新的远程分支之上的当前变化时,它不应该再推大型对象。

另一种方法是做一个git rebase --preserve-merges -i ,在其中编辑违规提交。


如果删除大文件的执行时间合理,您可以编写一个脚本来删除文件,指示所有人在rebase之后在本地运行脚本,并使用挂钩检查是否不重新引入该脚本。


该progit书有一个使用git filter-branch (不是过滤器树作为其他职位提及)的详细示例。 这一章在这里

' 删除对象 'http://progit.org/book/ch9-7.html

链接地址: http://www.djcxy.com/p/5463.html

上一篇: How to remove large file permanently for the whole team

下一篇: OpenglES blending particles but not background