有没有办法恢复未提交的git工作树?

有没有办法恢复未提交的git工作树?,git,Git,我今天做了一个噩梦,我3小时的工作都结束了,以下是我的经历: 您的工作树中有未保存的工作,git status告诉您 使用--merge切换分支,但是您犯了一个错误,您要签出的分支不是您要签出的分支,并且发生了合并冲突 你不想解决这个问题,或者只是不想做无用的事情,所以你要:git merge--abort和 砰,我最后的工作在哪里?一切都过去了,你意识到你只是做了一场噩梦 所以这就是我的故事,也许我会用一些黑暗的艺术来回忆我在深渊中失去的灵魂,或者也许我会记住在我在地球上的最后一天之前不要重复

我今天做了一个噩梦,我3小时的工作都结束了,以下是我的经历:

  • 您的工作树中有未保存的工作,
    git status
    告诉您
  • 使用--merge切换分支,但是您犯了一个错误,您要签出的分支不是您要签出的分支,并且发生了合并冲突
  • 你不想解决这个问题,或者只是不想做无用的事情,所以你要:
    git merge--abort
  • 砰,我最后的工作在哪里?一切都过去了,你意识到你只是做了一场噩梦

  • 所以这就是我的故事,也许我会用一些黑暗的艺术来回忆我在深渊中失去的灵魂,或者也许我会记住在我在地球上的最后一天之前不要重复这些。

    在某个时间点,没有办法找回从未犯下或隐藏的东西。永远不要合并未提交的更改。有这样的说法:

    […]如果在合并开始时有未提交的更改(特别是如果这些更改在合并开始后被进一步修改),git merge--abort在某些情况下将无法重建原始(预合并)更改。因此:

    警告:不鼓励使用非平凡的未提交更改运行git merge:虽然可能,但在发生冲突时,它可能会使您处于难以退出的状态


    所以,对我来说,这是一次宝贵的经验,要更多地关注警告和频繁的破坏性简易命令,你可能会不同意,但3小时也不算太糟糕。如果你经常做出承诺,你很难真正失去一些东西。顺便说一句,您用例的习惯用法是
    git-stash;git checkout其他分支机构;git隐藏流行音乐
    。在发生冲突的情况下,藏品不会被移除,这样你就不会冒着容易丢失物品的风险。