我遇到了一个问题,我的origin/branch与我的本地分支不同步,见下文

当我尝试从我的本地"staging"分支推送到origin/staging分支时,我得到"被拒绝 - 非快进"错误.
我在Windows PC上使用带有EGit模块的Eclipse.
从另一篇文章中我看到我可以使用"git push --force origin staging"来解决我的问题,以便使用我的本地分支覆盖origin/staging分支.
但是,我没有看到EGit的选项,我也看不到如何在EGit中打开控制台来执行此操作?
有谁知道我是否可以在EGit中做到这一点?
好的 - 解决了我自己的问题.看来我在提交的问题上没有被推回原点/分期.在这里找到了关于使用"git reset XXX:without --hard" 的概述,它重置了分支标记,但保留了本地更改以供以后重新发送.
谢谢你,杰森
您确定要覆盖远程分支并丢失所有这些提交吗?
如果远程分支上的提交不在本地分支中,则应在推送之前将它们合并到本地分支中
例如,在您当地的staging分支机构:
git merge origin/staging
Run Code Online (Sandbox Code Playgroud)
但是,如果您确定,那么我建议您检查push refspec上的"强制更新"选项.
这有点复杂,但是EGit用户指南在讨论推送到其他存储库时解释了它,并且提到"强制更新"选项的特定部分在推送参考规范部分中
编辑0:关于你失败的合并,我还没有遇到直接失败而不是导致冲突的合并,看起来它可能是一个已知的问题
如果您进行强制推送,您将丢失origin/staging在修复标头中丢失的 Location: 字符串后添加的所有内容,并且您将破坏其他人的分支。我不认为这就是你想要的。你可能想先拉,然后推就可以了。