如何在Eclipse Oxygen中通过Egit找回已提交删除的文件?
找回Eclipse Oxygen中已提交删除的文件(Egit)
别急,这种情况我处理过好多次,不管是单个文件还是批量删除,用Egit自带的功能或者Git命令行都能轻松找回来,给你两种实用的方法:
方法一:用Egit图形界面恢复单个文件
- 在Eclipse的Package Explorer里,找到被删文件所在的项目,右键点击它,选择 Team -> Show History
- 在弹出的历史记录窗口里,找到那个执行了删除操作的提交记录(可以通过提交信息或时间快速定位)
- 双击这条提交记录,打开提交详情界面,在下方的文件列表里找到被删除的文件(它的状态会标着Deleted)
- 右键点击这个文件,选择 Restore from Commit,确认之后文件就会回到你的工作区和暂存区了
如果要恢复整个目录或多个文件,也可以在历史记录里选中对应的提交,右键选择 Compare with Working Tree,然后在对比界面里把需要的文件直接拖回工作区即可。
方法二:用Git命令行恢复(适合批量操作或熟悉命令的用户)
如果你习惯用命令行,也可以打开Eclipse的Terminal(或者系统自带终端,进入项目根目录),执行以下步骤:
- 先找到包含删除操作的提交ID:
这条命令会列出所有带删除操作的提交,找到对应那条的短ID(比如git log --oneline --diff-filter=Dabc123) - 恢复单个文件:
举个例子:git checkout <提交ID>^ -- <文件路径>git checkout abc123^ -- src/com/example/MyClass.java,这里的^表示取该提交的上一个版本,也就是文件还存在的版本 - 恢复该提交中所有被删除的文件:
这个命令会生成一个新提交,将之前删除的文件全部恢复回来git revert <提交ID>
恢复完成后记得检查文件内容是否正确,之后正常提交到仓库就可以了。
内容的提问来源于stack exchange,提问作者Jonathan




