【问题标题】:Recover dropped Stashed Changes in Github Desktop (Windows 10)在 Github 桌面 (Windows 10) 中恢复已删除的隐藏更改
【发布时间】:2022-01-23 06:22:14
【问题描述】:

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

因此,我丢失了多项更改。 Github 桌面不提供恢复这些的选项,尽管它们应该可以使用命令行来恢复(参见此处:How to recover a dropped stash in Git?)。但是在 Github 桌面中不再提供 Shell 命令行。此外,丢弃的文件在 Windows 回收站中不可用,尝试使用 ctrl+Z 取消也无济于事。

这个问题也和线程How can I undo discard changes in GitHub Desktop?类似,但是没有满意的答案就关闭了线程。接受的解决方案只是说 Github 桌面工作人员确认无法恢复此类丢弃的更改。

【问题讨论】:

  • 如果您使用的是 macOS,请使用 terminal 作为命令行。如果您使用的是 Windows,请使用 Powershell。然后尝试您链接的问题中的内容

标签: git github git-stash github-desktop


【解决方案1】:

在 Windows 10 上的 Github Desktop 中放置的 Stash 可以通过以下方式恢复:

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

  • 打开 stash drop 发生当天的日志文件。

  • 找到显示“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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-06-11
    • 2018-11-27
    • 2013-06-09
    • 2020-10-19
    • 2012-03-04
    • 2023-02-01
    • 1970-01-01
    • 2021-02-09
    相关资源
    最近更新 更多