Java 签出与文件冲突。我该如何进行?

Java 签出与文件冲突。我该如何进行?,java,eclipse,egit,jgit,vcs-checkout,Java,Eclipse,Egit,Jgit,Vcs Checkout,我刚刚从保存团队项目的远程存储库中提取了一些更改 这是我拉车时收到的信息: 显然,我的一个合伙人和我换了同一个文件 我如何从这里开始?信息非常模糊。有错误吗?我必须撤销我所做的吗?他一定要吗 您必须将合作伙伴的更改合并到代码中,并提交手动合并的文件 或者,如果您的更改不太复杂,您可以恢复(丢弃)对该文件的更改,更新代码以获取合作伙伴的更改,然后重做您的工作 请参见工作副本中的文件中是否有未提交的更改?或者你的工作副本是干净的?EGit文档将指导您完成后一个场景 根据我的经验,@lmray发布的

我刚刚从保存团队项目的远程存储库中提取了一些更改

这是我拉车时收到的信息:

显然,我的一个合伙人和我换了同一个文件

我如何从这里开始?信息非常模糊。有错误吗?我必须撤销我所做的吗?他一定要吗

您必须将合作伙伴的更改合并到代码中,并提交手动合并的文件

或者,如果您的更改不太复杂,您可以恢复(丢弃)对该文件的更改,更新代码以获取合作伙伴的更改,然后重做您的工作


请参见工作副本中的文件中是否有未提交的更改?或者你的工作副本是干净的?EGit文档将指导您完成后一个场景

根据我的经验,@lmray发布的错误对话框是EGit在本地工作副本有未提交的更改时显示的对话框。EGit希望合并来自远程的信息,但我被告知它不会修改脏的工作副本。若要继续,您必须首先在本地提交更改,提供一个回退点,然后再次请求合并。然后合并应该生成一个合并文件,希望没有任何冲突

感谢@B.Dalton试图纠正我的错误-我的脏工作副本文件有未提交的更改,本地git向导解释了这一点


题外话:如果你(像我一样)习惯于使用SVN,这是一种心理调整,它会很高兴地将远程更改拉到一个脏的本地工作文件中。并不是说这更好,只是git的工作方式有所不同。我仍在努力将我受过SVN训练的直觉转化为对Git的合适期望。

我今天遇到了这个问题,下面的解决方案对我有效

  • 藏起来。这将合并所有本地和冲突的更改
  • 现在做一个git拉
  • 在Eclipse中:-

  • 右键单击->单击“添加到索引”
  • 在暂存区域中添加冲突文件

  • 右键单击->单击提交
  • 在本地存储库中添加冲突文件

  • 您将获得所有更改(远程存储库和本地存储库中的更改)

    作为Head(>branch)提到的更改是其他人的更改,您可以相应地更新文件

  • 右键单击->单击添加到索引

  • 右键单击->提交并推送


  • 当您的更改无法与即将进行的更改合并时,会发生冲突,因为这些更改基本上在同一行上。您有两种选择,一种是还原更改,另一种是手动合并更改并稍后提交:请看“解决合并冲突”一节手动合并听起来不错,但EGit文档指出,冲突的文件应该有“>>>”、“===”和“这令人费解。可能冲突是由于不同的行尾标记或字符编码造成的?我在这里疯狂地猜测。我所能建议的是,您获得两份副本(您的和存储库中的版本)并逐行查看它们之间的差异。您通过有效地放弃更改并接受远程更改来解决冲突。