EGIT拒绝非快进式合并

6
我正在使用Java的Eclipse 4.2.1,并尝试使用EGIT。我的Github账户已全部设置好。没有其他人在操作,所以没有任何更改。我有一个非常简单的项目,只包含一个带有打印语句的单个文件。
我创建了本地存储库并添加了项目。(项目资源管理器显示:[gitrepo1 master])
在项目资源管理器中: 右键单击项目->团队->远程->推送 但是我得到:master:HEAD [rejected - non-fast-forward]
我已经配置了推送: 分支->主分支 URI->ssh.git@github.... 参考映射->HEAD:/refs/heads/master 我做错了什么?
3个回答

6
我们遇到了这个问题,因为我们在推送后修改了提交内容。
解决方法是合并 origin/master(在 Branches > Remote tracking),然后进行推送。

2

egit使用jgit来实现git的功能,而jgit是使用java语言编写的。最好的做法是先验证仓库是否可以使用普通的git客户端进行操作。从您的问题中无法确定配置情况。

当您收到错误消息提示无法推送(push)因为不是快进(fast forward)时,这意味着您需要先拉取(pull),然后再进行推送(push),请尝试这样做。


1
当我尝试拉取时,出现以下错误: 无法获取分支refs/remotes/origin/master的广告引用。 - mike
据我看,您似乎没有正确设置远程跟踪分支。您是用EGit克隆的项目吗? - ams

1

和Bernát一样的原因:我在推送后修改了一个提交。合并失败,因为存在冲突。

我的解决方法:上下文菜单中选择“Team/Reset”,然后选择“Remote Tracking”/'origin master'选项中的“Mixed”。之后,我所有自上次推送以来的更改都被标记,我可以提交和推送。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接