EGit on Eclipse:如何git push --force?

问题描述 投票:15回答:3

我的起源/分支与本地分支不同步,请参见下文

“我的提交历史”

[当我尝试从本地“ staging”分支推送到origin / staging分支时,出现“ rejected-non-fast-forward”错误。

我将Eclipse与Windows PC上的EGit模块一起使用。

[从another post here开始,我可以使用“ git push --force origin stage”解决问题,以使用本地分支替代origin / staging分支。

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

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

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

谢谢杰森

git egit
3个回答
28
投票

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

  1. 团队->推送分支<name of branch> ...
  2. 如果存在并且已发散,则强制覆盖远程分支上的分支

5
投票

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

如果远程分支上有不在本地分支中的提交,则应在推送之前将它们合并到本地分支中

例如,在您的本地staging分支上:

git merge origin/staging

但是,如果您确定的话,我建议您检查推送参考规范上的“强制更新”选项。

入门有点复杂,但是EGit用户指南在讨论Pushing to other Repositories时会对此进行解释,并且在Push Ref Specifications的部分中提到了“强制更新”选项的特定部分

Edit 0:关于失败的合并,我还没有遇到完全失败而不是导致冲突的合并,并且看来这可能是known issue


0
投票

[如果执行强制推送,则在修复标题中缺少的Location:字符串后,将丢失添加到origin/staging的所有内容,并且会破坏其他所有人的分支。我认为那不是你想要的。您可能想先进行拉动,然后进行拉动就可以了。

© www.soinside.com 2019 - 2024. All rights reserved.