我昨天清理了我的提交历史,因为有一些私人信息被意外推送.清理完提交后,我强行推送到我的主分支.在我的电脑和我的回购中,一切都是一样的.但是,当我尝试推送到Heroku时,我收到此错误:
Updates were rejected because the tip of your current branch is behind its remote counterpart. Integrate the remote changes (e.g.'git pull ...') before pushing again.
Run Code Online (Sandbox Code Playgroud)
所以我一直在寻找类似的线程,并尝试过:
$ git pull origin master 和 git pull --rebase origin master
返回:
* branch master -> FETCH_HEAD
Already up-to-date.
Run Code Online (Sandbox Code Playgroud)
我也尝试过git fetch返回相同的响应.它说一切都是最新的,为什么我不能推送到heroku?这与git filter-branch我昨天跑的有什么关系,我该如何解决?
Git的设计方式可以防止你覆盖任何已被推送到遥控器的分支.你git filter-branch是重写分支历史的众多方法之一(你在问题中直接得到了这一部分).
该--force期权git push可以让你无论在更新历史上的任何分歧的远程分支.
请注意,从技术上讲,您的私人信息不能保证完全删除.
dangling commitsgit gc在那里运行.