Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
执行硬重置后,Git推送原始主机_Git_Github_Version Control_Git Push - Fatal编程技术网

执行硬重置后,Git推送原始主机

执行硬重置后,Git推送原始主机,git,github,version-control,git-push,Git,Github,Version Control,Git Push,我最近对另一个分支执行了硬重置,因为我无法将主分支恢复到工作状态。我使用以下命令执行此操作: git reset --hard masterBackupBeforeMerginDateDepositReceived04-01-2017 (即,我破坏的特定功能仍在工作的分支) 然后我跑: git commit -m 'commit after getting adds/omits working again' 检查了我的本地master分支上已损坏的功能是否再次正常工作后,确实如此,因此我想再

我最近对另一个分支执行了
硬重置
,因为我无法将
主分支恢复到工作状态。我使用以下命令执行此操作:

git reset --hard masterBackupBeforeMerginDateDepositReceived04-01-2017
(即,我破坏的特定功能仍在工作的分支)

然后我跑:

git commit -m 'commit after getting adds/omits working again'
检查了我的本地
master
分支上已损坏的功能是否再次正常工作后,确实如此,因此我想再次提交该功能,以确保已保存该工作状态

然后我跑了

git push origin master
主机
分支再次推送到服务器,以便现在已修复的功能应在实时版本上重新开始工作。但是,在运行此
推送之后,Git显示了一条我以前从未见过的消息:

到git@bitbucket.org:abc/xyz.git ! [已拒绝]主机->主机(非快进) 错误:无法将某些引用推送到'git@bitbucket.org:abc/xyz.git' 提示:更新被拒绝,因为当前分支的提示已过期 提示:它的远程对应项。集成远程更改(例如。 提示:“git pull…”),然后再推。 提示:有关详细信息,请参阅“git push--help”中的“关于快进的说明”


似乎Git不喜欢我将“旧”版本推送到服务器上,而服务器上当前有一个“新”版本。。。如何强制服务器接受“旧”版本的
推送
(当前是本地计算机上的
分支?

只需添加强制选项
-f

git-push-f原始主机


如果使用“重置”,然后强制推送,则可能会使其他拉取您不喜欢的版本的人陷入困境

将损坏的版本推送到远程回购后,最好使用恢复,而不是重置

Revert将在错误提交的基础上添加更改,使新版本看起来与之前的版本相同。然后,当您推送时,您只是推送新更改,以修复先前推送的错误

比如说

git revert HEAD
将添加新更改以撤消最近提交的效果。
有关撤消多个提交的详细信息,请参阅还原文档。

如果要将本地branchx推送到远程主分支,可以尝试
git push-f origin branchx:master


如果您已经将本地branchx重命名为master,您可以使用git push-f origin master

谢谢您的回答。我尝试过使用git revert 36ceff5f071b4c45f56a6c4bca523d0e9b5c1bc8
也就是说,将其重命名为上一次提交,但它给我一个错误,说明它无法还原:
错误:无法还原36ceff5…dateDep更改后保存值提示:解决冲突后,标记正确的路径提示:使用“git add”或“git rm”提示:并使用“git commit”提交结果。
我有另一个分支,该功能仍在其中工作-我可以用另一个分支替换我的
master
分支吗?我该怎么做您可以使用reset命令将本地主分支重置为工作版本。例如,签出主分支,然后执行git reset--hard good branch name,那么您必须使用上面Rafael提到的-f选项。但是,如果其他用户已提取了坏版本,那么他们的repo将不同步,他们将无法推动更改他们制造。还有其他用户使用此分支吗?没有,我是唯一从事此软件开发的人…所以只需签出本地
master
,然后执行
git reset--hard masterbackup在再次获取ddssomitsworking后执行
?其中
masterbackup在再次获取ddssomitsworking后执行此操作的分支名称是哪里功能仍在工作?我什么时候使用
-f
?如Rapfael在上面的帖子中所述,在推送时需要-f。git push-f origin master我尝试了这一点,但git给了我一条错误消息说:
错误:无法将某些引用推送到'git@bitbucket.org:moonhub/moon.git'提示:更新被拒绝,因为您的curren提示t分支支持提示:它的远程对应项。集成远程更改(例如提示:“git pull…”)再次推之前。提示:有关详细信息,请参阅“git push--help”中的“关于快进的说明”。
,因此,
似乎失败了……还有其他建议吗?我可以用另一个本地分支替换
master
,然后推这个吗?我该怎么做?
-f
选项应该解决该消息。我不是s你为什么会这样。