git推送被拒绝:错误:推送部分引用失败

9rnv2umw  于 2023-03-28  发布在  Git
关注(0)|答案(8)|浏览(244)

我知道人们也问过类似的问题,但我相信他们的问题的原因是不同的。我做了一个硬复位,因为我已经把我的代码搞得相当糟糕

git reset --hard 41651df8fc9

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

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

Git建议做一个git pull,这也是其他人对其他用户的建议。然而,我相信git pull会将我当前的代码与我不再想要的代码(头部修订)合并。我怎么能做一个push,忘记我前面的版本/修订?

amrnrhlw

amrnrhlw1#

git push -f,如果你有权限,但这会搞砸任何其他人谁拉从该仓库,所以要小心。
如果这被拒绝,并且您可以访问服务器,正如canzar下面所说的,您可以在服务器上使用

git config receive.denyNonFastForwards false
57hvy0tb

57hvy0tb2#

如果你是唯一一个在项目中工作的人,你可以做的是:

git checkout master
 git push origin +HEAD

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

beq87vna

beq87vna3#

就这么做

git pull origin [branch]

然后你就可以用力了
如果你有自己的提交,并且还没有把它推到分支,试试

git pull --rebase origin [branch]

然后你就可以用力了
了解更多关于handling branches with Git的信息。

3j86kqsm

3j86kqsm4#

'remote:错误:拒绝非快进引用/头/主(你应该先拉)'
这条消息表明服务器上有一个钩子正在拒绝快进推送。是的,通常不建议使用它,它是一个很好的保护,但由于您是唯一使用它的人,并且您希望执行强制推送,请联系仓库管理员,通过临时删除钩子或在钩子中授予您执行非快进推送的权限。

kknvjkwl

kknvjkwl5#

我解决这个问题的方法是:

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

另外,通过运行以下命令确保您指向正确的分支:

git remote set-url origin [url]
bhmjp9jg

bhmjp9jg6#

对我来说,下面的工作,只是运行这些命令一个接一个
git pull -r origin master
git push -f origin your_分支

tyg4sfes

tyg4sfes7#

我做了以下步骤来解决这个问题。在给我错误的分支上:

  1. git pull origin [branch-name]<current branch>
    1.拉取后,得到了一些合并问题,解决了它们,将更改推送到同一个分支。
    1.创建了Pull请求,并推送了分支... tada,我的更改正在反映,所有更改。
vyswwuz2

vyswwuz28#

之后对我起作用的是在推送之前从所有遥控器中获取:

git fetch --all
git push

在此之前,我先执行git pull(ok),然后执行git push,但问题一直存在,直到首先从所有远程获取。
也许我的分支是相互关联的。
希望这能解决你的问题。

相关问题