对项目使用git,我不小心在一个提交中添加了一个大.zip
文件。在我开始将它上传到github之前我没有注意到。当我注意到时,我点击ctrl-c
,git remove
,git commit
并再次上传(现在文件未跟踪)。
我知道这不是正确的选择,因为一旦我提交.zip
,它就会一直保留在回购中,直到我恢复提交,但遗憾的是我没有。
现在,当有人试图从repo下载时,需要花费大量时间来完成它,有时会产生git the remote end hung up unexpectedly
(我读过的可以通过做一些git config
来解决)非常烦人。
我的观点是:有没有办法告诉在此特定提交版本中忘记此特定文件的进一步拉/取请求?
答案 0 :(得分:62)
Github像这样提供useful help page on removing files。 StackOverflow上还有其他问题,涵盖了这个
另见this section of the Pro Git book,这是一个例子:
要从整个历史记录中删除名为passwords.txt的文件,您可以 使用--tree-filter选项过滤分支:
$ git filter-branch --tree-filter 'rm -f passwords.txt' HEAD Rewrite 6b9b3cf04e7c5686a9cb838c3f36a8cb6a0fc2bd (21/21) Ref 'refs/heads/master' was rewritten
清理完成后,您还可以尝试git gc进一步压缩和清理存储库。
答案 1 :(得分:4)
现在有一个名为" BFG Repo-Cleaner"的工具,它在github.com上被提及作为filter-branch的替代https://help.github.com/articles/remove-sensitive-data/