拉动后,Gclipse中的Git项目从工作区消失了

时间:2014-09-24 09:40:17

标签: java eclipse git egit

在我使用egit执行以下操作后,我的Java项目从Project Explorer中消失了:

  • 提交已成功执行
  • 推送到上游没有成功(不确定原因,但我认为这是因为首先需要拉动)
  • Egit说项目合并成功

我关闭了包含合并信息的窗口(由于repo处理了两个不同的项目并且更新在我正在处理的那个上,我没有真正注意到该项目),项目从Project Explorer中消失了。知道为什么会这样吗?我不是在寻找重新导入项目的解决方案,而是出于解释这种行为的原因。

1 个答案:

答案 0 :(得分:2)

在某些情况下,我们会遇到这类问题,我会逐步解释这些要点

  • 如果有两个人参与项目 personA personB
  • 如果 personB 添加了新文件,那么这些文件路径将保存在我们的项目二进制文件中。所以 personsB 完成提交推送代码。
  • personA 还添加了新文件,此处文件路径也保存在项目二进制文件中并执行提交操作和远程一侧的代码。
  • personA 拉出二进制文件中出现的代码冲突时,情况会出现。在这种情况下,项目从Project Explorer 中消失。
我之前遇到过这种问题。我合并了两个没用的文件。

上述问题的解决方案

每当我们执行pull操作并在二进制文件中发生冲突时。我按照以下程序

  • 在这种情况下,我使用此命令git checkout --ours binaryfilenamewithpath

    git checkout --ours filename - >它会保留您的本地文件,而不会添加其他更改

  • 通过这个我们可以避免项目从Project Explorer 案例中消失。在这里您可以获得 personBs 文件,但文件链接无法添加到二进制文件
  • 所以我们手动将这些文件放到我们的项目中以便链接。
  • 然后你可以提交你的项目。

我更喜欢这种方式来解决这类问题。如果您有任何疑问,请问我。

解决您的问题

  • 执行git log命令,它将显示您之前的提交信息及其ID
  • git reset --hard commitid(c14809fa)它会生成您的本地代码和本地历史记录 就像那次提交一样。
  • 使用git pull origin branchname
  • 提取您的代码
  • 如果您在二进制文件中出现冲突,那么您的项目将从eclipse工作区消失。使用此命令git checkout --ours binaryfilewithpath来避免这种情况。
  • 如果要将文件添加到项目中并解决其他文件中的冲突。
  • 然后使用git commit -a -m 'your commit message'
  • 提交您的代码