在我的工作目录中意外地放了一个非.gitignore排除的大文件我提交了我的更改,推送到github然后做了一个git push heroku到生产。
当我看到它试图将数百MB的数据推送到heroku时,我杀死了这个过程。
我已经做了一个
git rm filename.extension
其次是
git add .
,一个新的提交和git推送。但当我到达git push heroku
时,它坚持继续推送这个不可能的大数据文件。
我如何查看违规文件是什么,以及如何让git / heroku忘记它曾经存在,所以git push heroku可以重新开始工作......?
谢谢!
答案 0 :(得分:6)
如果您执行了git rm large.file
,则介绍large.file
的提交仍然在您的回购历史中。
要让git忘记提交,您需要将其从repo的历史记录中删除。这可以使用git rebase
完成,如这些问题的答案中所述(例如):
从历史记录中删除提交后,您可以git push -f github
然后git push -f heroku
。
注意如果有人在您上次推送后获取了您的github repo状态,那么git push -f
可能会导致问题。有关解释原因,请参阅progit book中重新定位的危险一章。