首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何强制推送重置到远程仓库?

如何强制推送重置到远程仓库?
EN

Stack Overflow用户
提问于 2012-05-11 09:09:42
回答 10查看 96.2K关注 0票数 99

我们的远程主分支不知何故搞砸了。当前的开发代码和最新的提交都在主分支上。显然,主分支的开发代码还没有准备好。

因此,在我的本地存储库中,我重置了最新的标记git reset --hard (Tag)。主分支现在在我的本地存储库上是正确的。现在,当我尝试将更改推送到远程存储库git push origin master时,我得到一个错误:

代码语言:javascript
复制
To (REMOTE GIT REPOSITORY LOCATION)
 ! [rejected]        master -> master (non-fast-forward)
error: failed to push some refs to '(REMOTE GIT REPOSITORY LOCATION)'
To prevent you from losing history, non-fast-forward updates were rejected
Merge the remote changes (e.g. 'git pull') before pushing again.  See the
'Note about fast-forwards' section of 'git push --help' for details.

因此,在环顾四周之后,我发现了--force选项。因此,我对远程存储库git push --force origin master进行了强制推送,但仍然收到一个错误:

代码语言:javascript
复制
Total 0 (delta 0), reused 0 (delta 0)
remote: error: denying non-fast-forward refs/heads/master (you should pull first)
To (REMOTE GIT REPOSITORY LOCATION)
 ! [remote rejected] master -> master (non-fast-forward)
error: failed to push some refs to '(REMOTE GIT REPOSITORY LOCATION)'

我不能在master上拉,因为它包含不能在master上的开发代码。

EN

回答 10

Stack Overflow用户

发布于 2012-05-11 09:40:23

该消息表示不允许进行非快进推流。

您的远程存储库的配置中很可能包含denyNonFastforwards = true。如果您改变了这一点,git push --force应该可以工作。

要更改设置,您需要访问包含远程存储库的计算机。从那里开始执行git config receive.denynonfastforwards false

票数 158
EN

Stack Overflow用户

发布于 2012-05-11 09:29:04

遥控器不允许非快进。

您最好的选择是git revert所有不应该在那里的提交,并在未来更加小心。

git revert [commit]将创建一个新的提交,该提交撤消[commit]所做的任何操作。

票数 16
EN

Stack Overflow用户

发布于 2012-05-11 09:12:15

尝试使用-f标志并将其放在远程分支名称之后。

git push origin master -f

票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10544139

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档