从整个git存储库中完全删除文件

Pau*_* Bu 35 git github git-commit

使用git进行项目,我不小心添加了一个大.zip文件.在我开始将它上传到github之前我没有注意到.当我注意到,我打ctrl-c,git remove,git commit和(与文件未经跟踪现在)又上传了.

我知道这不是正确的选择,因为一旦我犯下了.zip它,它会一直保留在回购中,直到我恢复提交,但遗憾的是我没有.

现在,当有人试图从回购下载时,需要花费大量时间来完成它,有时候产量git the remote end hung up unexpectedly(我读过的可以通过做一些来解决git config)并且非常烦人.

我的观点是:有没有办法告诉在这个特定的提交版本中忘记这个特定文件的进一步拉/取请求?

Pau*_*xon 63

Github提供了有关删除此类文件有用帮助页面.StackOverflow还有其他问题可以解决这个问题

另请参阅Pro Git书的这一部分,其中给出了一个例子:

要从整个历史记录中删除名为passwords.txt的文件,可以使用--tree-filter选项过滤分支:

$ git filter-branch --tree-filter 'rm -f passwords.txt' HEAD
Rewrite 6b9b3cf04e7c5686a9cb838c3f36a8cb6a0fc2bd (21/21)
Ref 'refs/heads/master' was rewritten
Run Code Online (Sandbox Code Playgroud)

清理之后,您还可以尝试使用git gc进一步压缩和清理存储库.