恢复 Github 桌面 (Windows 10) 中删除的隐藏更改

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

作为初学者使用 Github Desktop(Windows 10 上的 v. 2.9.6),在从一个分支来回移动到另一个分支时,我会存储我的更改以将它们保留在分支上以供以后使用。但是连续执行两次,它实际上会覆盖并删除之前的存储,而不是堆叠存储中的更改。

因此我丢失了多项更改。 Github 桌面不提供恢复这些的选项,尽管它们应该可以使用命令行恢复(请参阅此处:如何恢复 Git 中删除的存储?)。但 Shell 命令行在 Github 桌面上不再可用。此外,丢弃的文件在 Windows 回收站中不可用,尝试使用 ctrl+Z 取消也没有帮助。

这个问题也类似于线程如何在 GitHub Desktop 中撤消放弃更改?,但线程已关闭,没有令人满意的答案。接受的解决方案只是说 Github 桌面工作人员确认没有办法恢复此类丢弃的更改。

git github git-stash github-desktop
2个回答
11
投票

Windows 10 上 Github Desktop 中丢失的 Stash 可以通过以下方式恢复:

  1. 在Github Desktop的日志中找到删除的stash的$stash_hash地址:
  • 访问此文件夹:C:\Users\USERNAME\AppData\Roaming\GitHub Desktop\logs

  • 打开隐藏掉落发生当天的日志文件。

  • 找到“Dropped stash”行,它包含哈希地址(在我的例子中为 92de3e8c594356cf04169d68e9cdf634806ab315)。参见Screenshot from Github Desktop Log File

  1. 启用 Windows 命令提示符以使用与 Github Desktop 相同的 git.exe 无缝编写 Git 命令。以下线程解释了这一切:https://stackoverflow.com/a/70441638/4074517
  2. 在 Windows 命令提示符中,导航到包含存储库的文件夹并输入以下命令: “git checkout -b recovery $stash_hash”,其中 $stash_hash 是删除的存储的哈希地址。这将在存储库中创建一个名为“recovery”的新分支,其中提交所有先前删除的隐藏更改。这取自:https://stackoverflow.com/a/91795/4074517

0
投票

补充达曼的上述答案, 在 macOS 中错误行就像

- info: [ui] [AppStore. _popStashEntry] popped stash with commit id df2cb0780de00bcafed2ed5ea548e7205874d2cf

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