转移到不同的分支,丢失了更改 - 有回来的方法吗?

arc*_*rcy 8 git github-desktop

我当时在 master 分支工作,但没有意识到这一点。我在那个分支机构做了几个小时的工作。

当我完成想要提交的内容后,我转到 GitHub Desktop v2.2.3 并注意到我处于 master 状态。在将它们添加到暂存之前,我列出了可用的分支并选择了我想要的分支;它问我想对当前的变化做什么,我选择了一个选项,说我想“把它们随身携带”。

现在我在两个分支中都找不到我的更改。

我进入命令行并输入“git reflog”并得到以下内容:

e328567 (HEAD -> master, origin/master, origin/HEAD, origin/branchNumberOne, branchNumberOne) HEAD@{0}: checkout: moving from branchNumberOne to master
e328567 (HEAD -> master, origin/master, origin/HEAD, origin/branchNumberOne, branchNumberOne) HEAD@{1}: checkout: moving from master to branchNumberOne
e328567 (HEAD -> master, origin/master, origin/HEAD, origin/branchNumberOne, branchNumberOne) HEAD@{2}: reset: moving to HEAD
e328567 (HEAD -> master, origin/master, origin/HEAD, origin/branchNumberOne, branchNumberOne) HEAD@{3}: clone: from https://gitlab.myURL.com/aCompany/myProject.git
Run Code Online (Sandbox Code Playgroud)

我什至不确定使用哪个 HEAD 索引来尝试恢复我的更改;我怎么知道呢?或者有其他方法可以恢复更改吗?

Sau*_*ari 7

引用自 GitHub Desktop 帮助页面,

分支间切换

如果您有未提交的已保存更改,则需要决定如何处理更改,然后才能切换分支。您可以在当前分支上提交更改、 在当前分支上存储更改或将更改带到新分支。

事实证明,这两个选项(上面突出显示的)都在内部为各自的分支执行存储操作。

GitHub Desktop 在切换操作期间丢弃提交的问题之前已在此处报告过v2.2.2。

如果使用此命令找不到未提交的更改,那么您可以按照此处的建议切换到 git CLI ,并尝试使用命令列出存储(确保您位于想要未提交更改的分支上)git stash list。如果储藏室可用,那么您可以选择pop其中之一apply,具体取决于您是要删除储藏室还是保留它以供进一步使用。

笔记:

  • GitHub Destkop 应用程序的“帮助”菜单下的日志可能会提供有关幕后发生的情况的更多信息。
  • 以防万一,如果日志显示存储操作失败(通过丢弃未提交的更改),则仍然可以恢复更改。


小智 5

上次发生在我身上的事情是 IntelliJ 拯救了我,如果您使用任何 IDE,您都可以撤消对丢失的文件所做的更改。通过执行“撤消”或使用文件历史记录功能。