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)
oua*_*uah 27
如果您是唯一从事该项目的人,您可以做的是:
git checkout master
git push origin +HEAD
Run Code Online (Sandbox Code Playgroud)
这会将origin/master的提示设置为与master相同的提交(因此删除41651df和origin/master之间的提交)
Rob*_*uch 14
做就是了
git pull origin [branch]
Run Code Online (Sandbox Code Playgroud)
然后你应该能够推动.
如果您已经自己提交并且没有将其推送到分支,请尝试
git pull --rebase origin [branch]
Run Code Online (Sandbox Code Playgroud)
然后你应该能够推动.