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

Eri*_*ric 61 git git-pull git-push

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

 git reset --hard 41651df8fc9
Run Code Online (Sandbox Code Playgroud)

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

 ! [rejected]        master -> master (non-fast-forward)
error: failed to push some refs to 'git@git.somewhere.git'
Run Code Online (Sandbox Code Playgroud)

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

blu*_*ift 96

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

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

git config receive.denyNonFastForwards false
Run Code Online (Sandbox Code Playgroud)

  • 如果您可以访问裸存储库,则可以使用`git config receive.denyNonFastForwards false`临时更新存储库配置.我发现我的默认设置为'true`. (2认同)

oua*_*uah 27

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

 git checkout master
 git push origin +HEAD
Run Code Online (Sandbox Code Playgroud)

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

  • AHHHH.在运行命令之前,我们应该阅读这些评论. (6认同)
  • 这会将origin/master的提示设置为与master相同的提交(因此删除41651df和origin/master之间的提交) (2认同)

Rob*_*uch 14

做就是了

git pull origin [branch]
Run Code Online (Sandbox Code Playgroud)

然后你应该能够推动.

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

git pull --rebase origin [branch]
Run Code Online (Sandbox Code Playgroud)

然后你应该能够推动.

  • 致命:找不到远程引用 [分支] (2认同)