我想将 HEAD 指针重置为我之前的提交
$ git reset --hard HEAD~1
HEAD 移动到上一个提交,但是无法推送到我的 origin master
$git push origin master
! [rejected] master -> master (non-fast-forward)
error: failed to push some refs to 'https://github.com/username/repo.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Merge the remote changes (e.g. 'git pull')
hint: before pushing again.
如何移动我的指针并告诉 Git 更新更改?
最佳答案
默认情况下,Git 不允许您推送服务器历史记录中没有最新更改的更改。这是为了避免其他人已经 pull 了您之前的 HEAD 时出现问题;那么你推送不是后代的东西将意味着他们将需要 merge 或 rebase 到你的新提交上。
如果您知道没有其他人在使用您的存储库,或者已经与所有使用过的人进行过沟通,那么您可以强行推送您的更改:
git push -f origin master
一些服务器配置为不允许强制更新。如果他们不这样做,您可以通过删除并重新创建分支来绕过它:
git push origin :master
git push origin master
但只有在您知道没有其他人的工作基于您的工作时才执行这些操作,或者您可以与所有这样做的人沟通并确保他们也在本地存储库中正确地重置为之前的提交。
关于git - 尝试重新定位 HEAD 指针时拒绝更新分支提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13353100/