找回 Intellij Idea 中丢失的货架更改

问题描述 投票:0回答:6

我已经通过 Intellij Idea 2016.2.1 搁置了 26 个 Java 文件更改,并签出到另一个分支。

当我来到旧分行检查我搁置的更改时。

我现在疯了,我丢失了所有文件。我工作了将近两个月。

有人可以帮我拿回来吗?

intellij-idea shelve
6个回答
71
投票

即使 IDE 中没有 Shelf 选项卡,您也可以在以下位置找到已搁置的更改作为补丁文件:

{ProjectName}/.idea/.idea.{ProjectName}/shelf/.idea/shelf

然后您可以应用任何选定的补丁。


35
投票

如果这些文件是在 IntelliJ 中编辑的,您可以恢复它们的状态。使用本地历史记录查看 IntelliJ 中所做的所有更改(VCS -> 本地历史记录 -> 显示历史记录)。


15
投票

我能够查看丢失的更改并通过以下方式恢复它们:

  1. 右键单击项目目录,选择“本地历史记录”>“显示历史记录”
  2. 在历史菜单中找到您要恢复的条目。 您可以通过双击条目和文件来检查文件以检查差异。
  3. 右键单击要恢复的条目,然后选择恢复

注意在我的例子中,Git>VCS Operations>Show History 没有显示任何内容。 只能通过“项目文件”菜单。


3
投票

Andrei 的回答对我的情况很有帮助,我重命名了我的项目,并且我之前搁置的更改不再在架子下找到,但我在应用补丁文件时确实遇到了问题,因为系统提示我“选择缺失的基础”补丁中的文件。类似于下面的屏幕截图中看到的内容:

enter image description here https://youtrack.jetbrains.com/issue/IDEA-183910

通过首先更改默认架子位置然后应用补丁,我能够避免为各种文件“选择丢失的基础”。

enter image description here https://www.jetbrains.com/help/idea/shelving-and-unshelving-changes.html#change-shelve-location

另外,我在这个位置找到了我的补丁:

{ProjectName}/.idea/shelf

而不是上述位置:

{ProjectName}/.idea/.idea.{ProjectName}/shelf/.idea/shelf

1
投票

也许这会对某人有所帮助: 由于 IntelliJ 的更新,我丢失了部分搁置的更改。我不确定更新是否是原因,但最终我最近的(也是重要的)大部分更改都消失了。 我无法从本地历史记录中恢复它们,因为这不会在 IDEA 更新后“幸存”。但在文件中我看到仍然有一些数据: C:\Users\myUser\AppData\Local\JetBrains\IntelliJIdea2021.2\LocalHistory 有一个约 50MB 的changes.storageData。 将文件复制到新版本的文件夹中并没有帮助,因为文件再次被覆盖。

解决方案: 我能够在here获取旧版本的 IntelliJ (2021.2) 并安装它。这可以并行完成,而无需删除较新的版本。 在这里,我可以从本地历史记录中检索我的更改并搁置或再次应用它们。

提示:开始之前备份“Local History”文件夹(或整个 IntelliJIdea20xx.x 文件夹)。我不记得我是否必须再次将其复制到那里,或者它是否可以开箱即用。 (只是为了确保当地历史不会丢失)。


1
投票

我也多次遇到这个错误,因此不再使用搁置的更改,而是直接使用 Git CLI。截至 2022 年,Jetbrains IDE 的“智能结帐”功能仍然不可信,该功能很有可能导致您的文件完全丢失(在 IntelliJ 和 Rider 中都有亲身经历)。

与这里关于使用本地历史的另一条评论不同,这对我来说不起作用,因为历史没有显示任何内容。由于这个仍未修复的错误,我还损失了很多时间。

解决方案是在命令行上使用“git stash -u”,然后签出所需的提交。完成后,输入“git stash apply”来恢复文件。信任“智能结账”功能就像玩俄罗斯轮盘赌。这是 IDE 的魔力,但可能会失败,让您失去一切。

© www.soinside.com 2019 - 2024. All rights reserved.