已移至其他分支,丢失了更改-有回溯的方法吗?

时间:2019-12-08 16:51:30

标签: git github-desktop

我在master分支中工作,却没有意识到。我在那家分公司工作了数小时。

当我完成了要提交的工作后,我去了GitHub Desktop v2.2.3,注意到我已经掌握了。在将它们添加到暂存之前,我列出了可用的分支并选择了我想要的分支。它问我要对当前的更改做什么,然后我选择了一个选项,说我想“随身携带它们”。

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

我转到命令行并输入“ 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

我什至不确定要使用哪个HEAD索引来找回我的更改;我该如何解决?还是有另一种方法来恢复更改?

4 个答案:

答案 0 :(得分:1)

事实证明,如果您更改分支并且未选择我确定已经选择的选项,则Github Desktop将存储更改。所以他们被藏起来了,但是我没有意识到。我现在有更改。

感谢所有人提供有用的提示和评论。 @saurabh P Bhandari,如果您想将藏匿建议放在答案中,我会接受并删除它。

答案 1 :(得分:1)

从GitHub桌面帮助page引用

  

在分支机构之间切换

     

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

事实证明,这两个选项(上面突出显示)在内部为相应的分支执行隐藏操作。

先前已针对{strong> v2.2.2 here报告了GitHub桌面在切换操作期间丢弃提交的问题。

如果使用this未找到未提交的更改,则可以按照建议的here切换到git CLI并尝试列出存储项(确保您在想要未提交的更改的分支上)通过使用命令git stash list。如果可以使用存储空间,则可以popapply进行选择,具体取决于您是要删除存储空间还是将其保留以备将来使用。

注意

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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

如果您在git reflog输出中看到 * ALL ,则提交指向相同的SHA-1,这意味着未进行任何更改

这是由于您的所有分支都指向相同的SHA-1

确定要成为的分支并签出。 就这么简单


您的问题是您没有提交更改。除非您将它们藏起来或在IDE历史记录中没有它们的位置,否则将无法检索它们。