我最近向另一个分支执行了hard reset
,因为我无法让我的master
分支回到工作状态。我使用命令执行此操作:
git reset --hard masterBackupBeforeMerginDateDepositReceived04-01-2017
(即我破坏的特定功能的分支仍在工作)
然后我跑了:git commit -m 'commit after getting adds/omits working again'
检查了已损坏的功能在我的本地master
分支上再次运行 - 它是,所以我想再次提交以确保我已保存该工作状态。
git push origin master
再次将master
分支推送到服务器,以便现在修复的功能应该在实时版本上重新开始工作。但是,在运行此push
后,Git显示了一条我以前从未见过的消息:
到git@bitbucket.org:abc/xyz.git ! [拒绝]主人 - >主人(非快进) 错误:未能将某些参考文献推送到' git@bitbucket.org:abc / xyz.git' 提示:更新被拒绝,因为您当前分支的提示落后 提示:它的远程对应物。整合远程更改(例如 提示:' git pull ...')再推一次。 提示:请参阅关于快进的说明'在' git push --help'详情。
似乎Git对我推动一个老年人不满意。版本到服务器,当有一个更新的'当前在服务器上的版本...如何强制服务器接受我的push
旧版'版本(当前是本地计算机上的master
分支?
答案 0 :(得分:0)
答案 1 :(得分:0)
如果您使用重置然后强制推送它可能会弄乱那些已经推出了您不喜欢的版本的人。
将破碎的版本推送到远程仓库后,最好使用还原而不是重置来恢复。
Revert将在错误提交之上添加更改,以便新版本看起来与之前的方式相同。然后,当你推动时,你只是推动新的变化来解决之前推出的错误。
例如
git revert HEAD
将添加新的更改,以撤消最近提交的效果。 有关撤消多次提交的详细信息,请参阅还原文档。
答案 2 :(得分:0)
如果要将本地branchx推送到远程主分支,可以尝试git push -f origin branchx:master
。
如果您已将本地branchx重命名为master,则可以使用git push -f origin master
。