我知道人们也问过类似的问题,但我相信他们的问题的原因是不同的。我做了一个硬复位,因为我已经把我的代码搞得相当糟糕
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,忘记我前面的版本/修订?
8条答案
按热度按时间amrnrhlw1#
git push -f
,如果你有权限,但这会搞砸任何其他人谁拉从该仓库,所以要小心。如果这被拒绝,并且您可以访问服务器,正如canzar下面所说的,您可以在服务器上使用
57hvy0tb2#
如果你是唯一一个在项目中工作的人,你可以做的是:
这会将origin/master的tip设置为与master相同的提交(因此删除41651 df和origin/master之间的提交)
beq87vna3#
就这么做
然后你就可以用力了
如果你有自己的提交,并且还没有把它推到分支,试试
然后你就可以用力了
了解更多关于handling branches with Git的信息。
3j86kqsm4#
'remote:错误:拒绝非快进引用/头/主(你应该先拉)'
这条消息表明服务器上有一个钩子正在拒绝快进推送。是的,通常不建议使用它,它是一个很好的保护,但由于您是唯一使用它的人,并且您希望执行强制推送,请联系仓库管理员,通过临时删除钩子或在钩子中授予您执行非快进推送的权限。
kknvjkwl5#
我解决这个问题的方法是:
另外,通过运行以下命令确保您指向正确的分支:
bhmjp9jg6#
对我来说,下面的工作,只是运行这些命令一个接一个
git pull -r origin master
git push -f origin your_分支
tyg4sfes7#
我做了以下步骤来解决这个问题。在给我错误的分支上:
git pull origin [branch-name]<current branch>
1.拉取后,得到了一些合并问题,解决了它们,将更改推送到同一个分支。
1.创建了Pull请求,并推送了分支... tada,我的更改正在反映,所有更改。
vyswwuz28#
之后对我起作用的是在推送之前从所有遥控器中获取:
在此之前,我先执行
git pull
(ok),然后执行git push
,但问题一直存在,直到首先从所有远程获取。也许我的分支是相互关联的。
希望这能解决你的问题。