Eclipse EGit Checkout与文件冲突: - EGit不想继续

时间:2013-08-05 03:36:25

标签: eclipse git merge conflict egit

我已经开始使用Eclipse EGit了。在某些情况下,它实际上并不全面。

我有本地文件,例如pom.xml改了。在git服务器上,此文件已更改。 我做pull,EGIt说:

  

结帐与文件冲突:

即。拉停止(fetch已完成,但不是merge),这没关系。然而,接下来是不好的经历。

我同步工作区,将我的更改放在一边,使其与FETCH_HEAD相同。但是EGit不想继续。我用HEAD修订版替换文件。但是EGit仍然不想继续。

解决冲突后,EGit应该采用什么标准的用户操作?

更新:

added to index,然后marked as Merged - > pull仍然无法通过 当我选择Merge时,我会看到对话框

enter image description here

我无法提交文件,因为它不在更改文件列表中。

10 个答案:

答案 0 :(得分:50)

<强>情况:

  • 您有本地未提交的更改
  • 你从主回购拉
  • 您收到错误&#34; Checkout与文件冲突:xy&#34;

<强>解决方案:

  • 暂存并提交(至少)文件xy
  • 再次拉
  • 如果可以自动充电,一切正常。
  • 如果没有,则pull合并文件并插入合并冲突标记(&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&gt;&gt;&gt;&gt;&gt;)
    • 手动编辑冲突文件
  • 提交并推送

答案 1 :(得分:27)

这是我解决问题的方法:

  1. 右键单击本地
  2. 上未提交更改的文件夹
  3. 点击小组&gt;高级&gt;假设不变
  4. 来自大师的
  5. Pull
  6. <强>更新

    正如Hugo Zuleta正确地指出的那样,在应用这个时你应该小心。他说最终可能会说分支是最新的,但是没有显示更改,导致分支的异步。

答案 2 :(得分:19)

  1. 关闭冲突错误对话框后;从Project Explorer中,右键单击项目的头部 - &gt;团队 - &gt; Stashes - &gt;藏匿更改
  2. 输入藏匿名称。例如。 &#34;冲突&#34;
  3. 再次尝试拉动。希望这次没有错误。
  4. 从Git Repository视图中,展开您的存储库 - &gt; Stashed Commits
  5. 右键单击您在步骤2中创建的存储 - &gt;应用Stashed Changes
  6. 如果合并工具无法自动合并,则会显示该合并工具。
  7. 手动解决文件中的合并冲突。
  8. 右键单击文件编辑器 - &gt;团队 - &gt;添加到索引
  9. 如果您尚未准备好提交文件或只是不想在索引中使用,请右键单击文件编辑器 - &gt;团队 - &gt;从索引中删除。
  10. 清理:从Git Repository视图,右键单击您在步骤2中创建的存储 - &gt;删除Stashed Commit
  11. 您的本地工作目录文件应该合并

答案 3 :(得分:1)

如果“ .settings / language.settings.xml”或任何此类文件出现错误,则无需git。

  1. 团队->提交->暂存文件列表,检查是否存在不需要的文件,-> 右键单击每个->从索引中删除。
  2. 从未分级文件列表中,检查是否存在不需要的文件,->右键单击每个文件-> 忽略。

现在,如果“暂存文件”列表为空,而“未暂存文件”列表中的所有文件都标记为“已忽略”。你可以拉。否则,请遵循其他答案。

答案 4 :(得分:0)

我想最好的方法就是这样:

  1. 将所有更改存储在单独的分支中。
  2. 然后在本地主人身上进行硬重置。
  3. 然后从本地创建的分支中合并您的更改
  4. 然后提交并推送您的更改。
  5. 无论何时发生,我都会如何解决我的问题。

答案 5 :(得分:0)

从Eclipse获得丑陋的CheckoutConflictException后,将禁用Eclipse-Merge Tool按钮。

Git需要将所有文件添加到索引中才能启用合并。

因此,要合并您的更改并提交更改,您需要先将文件添加到索引“添加到索引” “提交” 中而无需 “推” 。然后,您应该在Eclipse中看到一个挂起的请求和一个挂起的请求。您会看到一个向上箭头和一个向下箭头。

如果所有冲突文件都在提交中,则可以再次“拉” 。然后您会看到类似以下内容的

\ <<<<<<<头 服务器版本 \ ======= 本地版本 .... git的分支'master'

然后,您可以通过现已启用的合并工具对其进行更改,也可以直接在文件中手动进行合并。在最后一步中,您必须再次将修改后的文件添加到索引中,然后“提交并推送”

检查完成!

答案 6 :(得分:0)

正确的解决方案是@ Jojo.Lechelt提供的解决方案。

但是,如果出于某种原因不想提交但仍要拉出更改,则可以将更改保存到其他位置,将冲突的文件替换为HEAD版本,然后拉出。

以后,您可以再次粘贴所做的更改,并将其与HEAD进行比较,并将其他人的更改合并到您的文件中。

答案 7 :(得分:0)

右键单击项目,然后选择[替换为]->“头部修订”。现在选择在当前分支中拉出更改或从上游拉出更改。

答案 8 :(得分:0)

在Eclipse中:-

  1. 右键单击->单击“添加到索引”

在暂存区中添加冲突文件

  1. 右键单击->单击提交

在本地存储库中添加冲突文件

  1. 拉动

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

以Head( <<<<<< HEAD )提及的更改是您的更改,分支(>>>>>>>>> 分支中提及的更改是其他更改更改人员后,您可以相应地更新文件。

  1. 右键单击->单击“添加到索引”

  2. 右键单击->提交并推送

答案 9 :(得分:0)

我对这个问题有完全不同的经历。 当我拉(我的暂存是干净的!),我看到很多文件在拉后暂存,我没有改变或添加,所以我用头替换再次清理暂存区。再次尝试 pull 后,我又遇到了同样的问题,现在我做了以下操作:

  • 隐藏的更改
  • 关闭存储库中其他程序中打开的任何文件
  • 试着拉

希望这能解决您的问题。

谢谢