git push被拒绝:错误:无法推送一些引用

问题描述 投票:58回答:7

我知道有人问过类似的问题,但我相信他们的问题的原因是不同的。我做了一个硬重置,因为我搞砸了我的代码非常糟糕

 git reset --hard 41651df8fc9

我做了一些更改,我做了一些提交,现在我正在尝试将所有这些提交推送到服务器中,我得到以下错误:

 ! [rejected]        master -> master (non-fast-forward)
error: failed to push some refs to '[email protected]'

Git建议做一个git pull,这就是其他人向其他用户建议的内容。但是,我相信git pull会将我当前的代码与我不再需要的代码合并(头部修订版)。我怎么能推动并忘记我之前的版本/版本?

git git-push git-pull
7个回答
93
投票

git push -f,如果你有权限,但这将搞砸任何从该回购中撤出的人,所以要小心。

如果拒绝,并且您可以访问服务器,如下面的canzar所述,您可以在服务器上允许此操作

git config receive.denyNonFastForwards false

25
投票

如果您是唯一从事该项目的人,您可以做的是:

 git checkout master
 git push origin +HEAD

这会将origin / master的提示设置为与master相同的提交(因此删除41651df和origin / master之间的提交)


14
投票

做就是了

git pull origin [branch]

然后你应该能够推动。

如果您已经自己提交并且没有将其推送到分支,请尝试

git pull --rebase origin [branch]

然后你应该能够推动。


4
投票

'remote:错误:拒绝非快进refs / heads / master(你应该先拉)

该消息表明服务器上有一个拒绝快速推送的钩子。是的,它通常不推荐并且是一个很好的防守,但由于你是唯一一个使用它并且你想进行强制推动的人,请联系repo的管理员以允许通过暂时删除来执行非快速推送挂钩或给你许可钩子这样做。


2
投票

我为解决这个问题所做的是:

git pull origin [branch]
git push origin [branch]

还要确保通过运行指向正确的分支:

git remote set-url origin [url]

1
投票

对于我的工作,只需逐个运行这些命令

git pull -r origin master

git push -f origin your_branch


0
投票

我执行了以下步骤来解决此问题。在给我错误的分支上:

  1. git pull origin [branch-name]<current branch>
  2. 拉动后,得到了一些合并问题,解决了它们,将更改推送到同一个分支。
  3. 用推出的分支创建了Pull请求... tada,我的变化反映了所有这些。
© www.soinside.com 2019 - 2024. All rights reserved.