git - 尝试重新定位 HEAD 指针时拒绝更新分支提示

标签 git

我想将 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/

相关文章:

git - 错误 : pathspec 'temp/versionX' did not match any file(s) known to git

php - 具有开发、阶段和实时站点的 Git Web 工作流程

当 merge A->B 然后 B->A 时,Git 不会产生新的提交,我如何确保其他团队看到第二次 merge ?

git - 使用git管理一本书的示例源码: how to propagate changes?

git - 如何在交互式 git rebase 期间检查冲突?

git - 设置每个裸仓库的工作树

Git 本地仓库所有步骤

git - 如何从多个提交创建分支?

ruby-on-rails - Git 忽略目录中指定的所有文件

git - 在 Windows 中编写 Git 命令脚本