我有一个文件由于某种原因安装在我的项目qt-linux-opensource-5.0.2-x86-offline.run中。这个文件超级大,所以我用git删除它:
git rm qt-linux-opensource-5.0.2-x86-offline.run
问题是当我按下文件仍然试图被推...我怎么完全删除这个文件。我已经从我的计算机中删除了该文件(不希望它在该目录中)并且为了额外的保护,我把它放在我的git ignore文件中。我需要更新应用程序,但由于它的300mb +大小,这个文件使它变得不可能。感谢所有可以提供帮助的人。
答案 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
)