在我使用 egit 执行以下操作后,我的 Java 项目从项目资源管理器中消失了:
- 提交成功执行
- 推送到上游没有成功(不确定原因,但我认为这是因为首先需要 pull )
- Pull Egit 表示项目 merge 成功
在我关闭包含 merge 信息的窗口后(我并没有真正注意这一点,因为存储库处理两个不同的项目,并且更新是在我不处理的项目上),该项目从项目资源管理器中消失了。知道为什么会这样吗?我不是在寻找重新导入项目的解决方案,而是为了解释这种行为的原因。
最佳答案
在某些情况下我们会遇到此类问题,我将逐步解释这些问题
- 如果两个人参与该项目personA、personB。
- 如果 personB 添加新文件,这些文件路径将保存在我们的项目二进制文件中。所以personsB 完成提交并推送代码。
- 和personA也添加了新文件,这里也以同样的方式将文件路径保存在我们的项目二进制文件中并执行提交操作和提取远程端的代码。
- 这里出现了这种情况,当personA pull 二进制文件中出现代码冲突时。在这种情况下,项目将从项目资源管理器中消失。
我以前遇到过此类问题。我 merge 了两个文件,但没有成功。
上述问题的解决方案
每当我们执行 pull 操作并在二进制文件中遇到冲突时。我遵循以下程序
在这种情况下,我使用此命令
git checkout --ours binaryfilenamewithpath
git checkout --ours filename
-> 它保留您的本地文件而不添加其他更改这样我们就可以避免项目从项目资源管理器中消失的情况。在这里,您获得 personBs 文件,但文件链接无法添加到二进制文件。
因此,我们必须手动将这些文件添加到我们的项目中以用于链接目的。
然后您就可以提交您的项目了。
我更喜欢用这种方式来解决此类问题。如果有任何疑问请问我。
您的问题的解决方案
- 执行
git log
命令,它将显示您以前的提交信息及其ID git reset --hard commitid(c14809fa)
它将使您的本地代码和本地历史记录 就像那次提交时一样。- 使用
git pull originbranchname
pull 代码 - 如果二进制文件发生冲突,那么您的项目将从 Eclipse 工作区中消失。使用此命令 git checkout --ours binaryfilewithpath 可以避免这种情况。
- 如果您想要向项目添加文件并解决其他文件中的冲突。
- 然后使用
git commit -a -m 'your commit message' 提交代码
关于java - pull 后,Eclipse 中的 Git 项目从工作区消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26013589/