Git删除了文件但仍被推送

时间:2015-08-25 19:32:27

标签: git ruby-on-rails-4 github

我有一个文件由于某种原因安装在我的项目qt-linux-opensource-5.0.2-x86-offline.run中。这个文件超级大,所以我用git删除它:

git rm qt-linux-opensource-5.0.2-x86-offline.run

问题是当我按下文件仍然试图被推...我怎么完全删除这个文件。我已经从我的计算机中删除了该文件(不希望它在该目录中)并且为了额外的保护,我把它放在我的git ignore文件中。我需要更新应用程序,但由于它的300mb +大小,这个文件使它变得不可能。感谢所有可以提供帮助的人。

1 个答案:

答案 0 :(得分:1)

您已经提交了该文件。因此,它位于您的历史记录中,git rm不会从中删除该文件。

幸运的是,您还没有推送您的提交,这使您可以使用git filter-branch。 Git Pro书中包含section on this command,而filter-branch's documentation有正确的例子:

git filter-branch --index-filter \ 
 'git rm --cached --ignore-unmatch qt-linux-opensource-5.0.2-x86-offline.run' \
  origin/master..HEAD

但是,请确保在使用之前了解filter-branch。这本书并不是为了娱乐而把它称为“核选项”。

(另外,请考虑将*.run添加到.gitignore