git推拒绝:错误:未能推一些裁判

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

git reset --hard 41651df8fc9 

我做了一些改变,我做了一些提交,现在我试图将所有这些提交到服务器中我得到以下错误:

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

Gitbuild议做一个git pull,这是其他人向其他用户build议的。 不过,我相信git pull会将我当前的代码和我不想要的代码合并(head revision)。 我怎么能推一下,忘记我前面的版本/版本?

git push -f如果你有权限的话,但是这会搞砸从回购的其他人,所以要小心。

如果这被拒绝,并且你有权访问服务器,就像canzar在下面说的那样,你可以在服务器上允许这个

 git config receive.denyNonFastForwards false 

如果你是唯一从事这个项目的人,你可以做的是:

  git checkout master git push origin +HEAD 

这会将源/主的提示设置为与主服务器相同的提交( 因此删除41651df和原始/主服务器之间的提交

做就是了

 git pull origin [branch] 

然后你应该能够推动。

如果你有自己的提交,并没有推动它的分支,尝试

 git pull --rebase origin [branch] 

然后你应该能够推动。

'远程:错误:拒绝非快速转发/头/主(你应该先拉)'

该消息表明服务器上存在拒绝快进button的挂钩。 是的,这通常不被推荐,并且是一个很好的防范措施,但由于您是唯一使用它的人,并且您想要进行强制推送,请联系回购pipe理员以允许通过临时删除挂钩或给你的权限在钩子这样做。

我做了什么来解决这个问题是:

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

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

 git remote set-url origin [url]