我不小心对git回购做了一些操作,我不知道现在是否可以保存我的项目...
我做了很多修改。然后,我想删除我的上一次提交,以便我可以进行新的提交。我忘了做git stash。因此,当我运行git reset --hard [second-to-last commit]
时,它会抹去我所做的一切。这很愚蠢,但是我能做些什么来挽救我最近的工作吗?
我正在使用Eclipse IDE。
答案 0 :(得分:3)
git的简短答案,否。
无法恢复不是add
或stash
的文件
通常,处理此类问题的最佳方法是依靠IDE 。
在Eclipse 中,您可以在此路径下查看
.metadata/.plugins/org.eclipse.core.resources/.history/
因此,您可以使用这些命令来查找最新更改,
cd .metadata/.plugins/org.eclipse.core.resources/.history/
ls -al * | grep "<today's date>" | grep "r\-\-" | sort -k 6
请注意,您必须将"<today's date>"
替换为"Jul 27"
。
那么您可以使用
find . -name <filename>
请注意,您必须将"<filename>"
替换为上一条命令中找到的"7098a672a2bc00111703c0e5cbee369d"
。
有关更多信息,请查看this。
答案 1 :(得分:2)
不幸的是,git无法知道您没有提交或隐藏的文件内容。这意味着您无法使用git恢复更改。其他工具也许可以提供帮助。例如,IntelliJ具有“本地历史记录”功能,可跟踪所有保存的更改。也许您的编辑器有类似的内容?
答案 2 :(得分:2)
您在评论中提到您正在使用Eclipse-通常eclipse会保留您过去和一直在进行的更改的本地历史记录。在这方面,以下步骤可能会有所帮助:
从本地历史记录恢复已删除的资源 要以本地历史记录的状态恢复已删除的Workbench资源:
在其中一个导航视图中,选择要将本地历史记录状态还原到的文件夹或项目。
从资源的弹出菜单中,选择“从本地历史记录还原...”。“从本地历史记录还原”对话框将打开,显示先前包含在所选文件夹或项目中的所有文件及其所有子文件夹。
检查要还原的文件
如果您不想仅还原文件的最后状态,则可以从对话框右侧的“本地历史记录”列表中选择文件的其他任何状态。对话框的底部窗格显示状态的内容。
如果已处理完所有文件,请单击“还原”。
提示:可以使用命令链接“常规”>“工作空间”>“本地”来配置“工作台”首选项,以指定要保留文件的天数,或者要保留每个文件多少个条目,或者要保留的文件的最大文件大小。历史记录首选项页面。
这也可以在以下链接中找到:https://help.eclipse.org/neon/index.jsp?topic=%2Forg.eclipse.platform.doc.user%2Ftasks%2Ftasks-87b.htm