2012-09-06 59 views
11

我碰到我的起点/支被淘汰与本地分支同步的问题,请参见下面EGit on Eclipse:如何git push --force?

My commit history

当我尝试从我的地方“上演”分支推向原点/登台分支我得到“拒绝 - 非快进”错误。

我在Eclipse PC上使用EGit模块。

another post here我看到我可以通过“git push --force origin staging”来解决我的问题,以便用本地分支覆盖原点/临时分支。

但是,我没有看到EGit的选项,我不知道如何在EGit中打开控制台来执行此操作?

有没有人知道我是否可以在EGit内做到这一点?

确定 - 修复了我自己的问题。看起来我有提交的问题没有被推回原点/分段。在使用“git reset XXX:without --hard”时发现an overview here,它重置了分支标记,但保留了本地更改以供稍后重新提交。

感谢,杰森

回答

0

如果你尽了力推,你将失去一切加入到origin/staging固定失踪地点后:在头字符串,你会打破别人的分支机构。我不认为这就是你想要的。你可能想先做一个拉动,然后推动就可以正常工作。

+0

值得关注的是拉会尝试自动合并,如果成功,那么一切将工作得很好。如果没有,用户必须合并自己,承诺,然后它应该没问题。 – eis

+0

已经尝试拉和合并,都失败。 – Jason

+1

合并失败信息:合并修订版4092d67bbfda43148cc078674f2f2738720caade,5df2879b3ecf2b7d0e1d0209a1f7862ce6f5aa9b与基本8643195cd4a8391497469a92d627ef5cf8480e13使用策略解析导致:失败。 – Jason

5

您确定要覆盖远程分支并丢失所有提交吗?

如果有对远程分支机构不在当地分行提交,你应该将其合并到本地分支推

例如,虽然在本地staging分支之前:

git merge origin/staging 

但是,如果您确定,那么我建议您检查push refspec上的“Force update”选项。

这是一个有点复杂,才能到,但例如:It用户指南讨论Pushing to other Repositories时解释它,所提到的“强制更新”选项的具体部分是在节上Push Ref Specifications

编辑0:关于您的失败合并,我还没有遇到彻底失败的合并,而不是导致冲突,它似乎可能是一个known issue

+0

我同意,拉和合并是更好的选择,但正如我上面所述,他们失败了? – Jason

21

我刚刚遇到类似的问题,这是我所做的:

  1. 团队 - >推科...
  2. 强制覆盖远程分支的,如果它存在,并已发散