我遇到问题,我的origin / branch与我的本地分支不同步,见下文
当我尝试从我的本地“staging”分支推送到origin / staging分支时,我得到“被拒绝 - 非快进”错误。
我在Windows PC上使用Eclipse和EGit模块。
从another post here我看到我可以使用“git push --force origin staging”解决我的问题,以便使用我的本地分支覆盖origin / staging分支。
但是,我没有看到EGit的选项,我也看不到如何在EGit中打开控制台来执行此操作?
有人知道我是否可以在EGit中做到这一点?
好的 - 解决了我自己的问题。看来我在提交的问题上没有被推回原点/分期。找到an overview here使用“git reset XXX:without --hard”重置分支标记,但保留本地更改以供以后重新发送。
谢谢,杰森
答案 0 :(得分:24)
我刚遇到类似的问题,这就是我所做的:
答案 1 :(得分:5)
您确定要覆盖远程分支并丢失所有这些提交吗?
如果远程分支上的提交不在本地分支中,则应在推送之前将它们合并到本地分支
例如,在您当地的staging
分支上:
git merge origin/staging
但是,如果您确定,那么我建议您检查推送refspec上的“强制更新”选项。
这有点复杂,但是EGit用户指南在讨论Pushing to other Repositories时解释了它,提到“强制更新”选项的具体部分在Push Ref Specifications部分
编辑0:关于您的合并失败,我还没有遇到直接失败的合并而不是导致冲突,看起来它可能是known issue
答案 2 :(得分:0)
如果你进行强制推送,在修复标题中缺少的Location:字符串之后,你将丢失添加到origin/staging
的所有内容,并且你将打破其他人的分支。我不认为这就是你想要的。你可能想先拉一下,然后按下就行了。