如何恢复Git revert删除的文件及目录?含IntelliJ操作与交互式方法
恢复被Revert删除的目录及相关操作方案
1. 恢复目录的Git命令方式
先找到你执行的revert提交的哈希值(用git log即可查看,就是红框标注的那个提交),或者找到被这次revert操作撤销的原始提交哈希:
- 若只想把目录恢复到工作区,不生成新提交:
比如目标目录是git checkout <原始提交哈希> -- 目标目录路径src/main/com/example,就写git checkout abc123 -- src/main/com/example - 若想通过生成新提交的方式恢复(反向撤销revert操作,保留完整提交轨迹):
这个操作会直接撤销那次revert,把所有被删内容恢复,适合需要保留提交记录的场景。git revert <revert提交的哈希>
2. 在IntelliJ中直接执行恢复操作
完全可以,操作步骤如下:
- 打开Git工具窗口(快捷键
Alt+9),切换到Log标签页,找到你标记的revert提交; - 右键该提交,选择
Show Diff,在弹出的差异对比界面里,找到蓝箭头指向位置下的目标目录(绿箭头标注内容); - 右键目标目录,选择
Checkout Directory,即可将该目录恢复到当前工作区。
另外也可以直接找到被revert的原始提交,右键选择Checkout并指定要恢复的目录路径。
3. 交互式选择恢复内容
命令行和IntelliJ都支持精准选择:
- 命令行方式:使用
restore命令的交互式选项,针对目标目录执行:
执行后会逐个显示目录下的代码变更块(hunk),你可以输入git restore -p -- 目标目录路径y(恢复)、n(跳过)、s(拆分块)等选项,精准选择要恢复的内容。 - IntelliJ方式:在差异对比界面(Log里的
Show Diff),可以勾选单个文件,甚至点击代码块左侧的复选框,只恢复特定的代码片段,无需一次性恢复整个目录或文件。
内容的提问来源于stack exchange,提问作者joseluisbz
相关产品推荐
相关产品推荐

