为什么 git reset commit + git push 会导致当前分支的提示落后于远程?

cal*_*eld 5 git github heroku git-reset

我想撤消对我的回购的一些小改动。我决定回退两次提交,并做到了

git reset --hard <commit>
Run Code Online (Sandbox Code Playgroud)

git push -f
Run Code Online (Sandbox Code Playgroud)

一切顺利。但是当我推送到 heroku 时,我得到了一个关于如何没有推送一些引用的错误,然后是这个解释:

更新被拒绝,因为您当前分支的尖端落后于其远程对应分支。在再次推送之前合并远程更改(例如“git pull”)。

每次我回到以前的提交时,我都会得到一个分离的 HEAD 或遥控器后面的提示。这会阻止我推送到 git 或 heroku。为什么?我该如何解决这个问题?要遵循的正确命令列表是什么,以便将来不会造成干扰?

Mih*_*238 3

我认为 heroku 不允许你了解rewrite历史。当您在远程分支上工作时,不应使用resetrebase。通过使用

git revert HEAD~2..HEAD
Run Code Online (Sandbox Code Playgroud)

将创建 2 个新提交,恢复最后 2 个提交的更改。这也可以防止您的同事发生合并冲突。