如何在Git中撤消checkout?

时间:2017-12-11 16:50:39

标签: git git-checkout undo

我和Git犯了一个大错,我担心我已经失去了2天的工作,我希望你们中的一个能够帮助我解决这个问题!

我是Git的新手,所以我不断在线查看如何做某些事情,几天前我用网络界面创建了一个新的分支,因为我已经工作和工作了因为今天我认为这是关于我推动工作的时间,所以我做了以下事情,而没有提交或推动(或检查出所述分支);

git add .

git commit -m "these changes were awesome"

然后在git推动之前,我想"我真的应该把它放在一个新的分支上#34;快速谷歌搜索"如何更改分支"想出了" git checkout" ..."好的!"我想,就像我没有经过深思熟虑的猿一样,看到我在VS Code中的文件结构发生了巨大变化......然后我意识到我已经失去了它。

Git是否有希望将这些已删除的文件存储在任何地方?有没有希望我能把这些文件拿回来而不必跳出我的窗口?

2 个答案:

答案 0 :(得分:2)

您添加了所有文件,然后提交了它们,因此听起来好像它们已安全地存储在您的分支上。你是如何与git交互的(例如shell,git扩展等等)?

运行" git branch"如果您在控制台中。你看到了什么? 如果在git扩展或类似的,你看到了什么分支/提交?

如果您切换了分支机构,您应该能够检查上一个分支机构以查看您的承诺工作。否则(如果在当前分支上)如果在前一个日志中看到您的提交(" git log"命令),请仔细重置或隐藏当前分支上的更改。

答案 1 :(得分:0)

我已经将@Daniiel Mohr的回答标记为正确,因为他帮助我到达那里,但我会在这里发布我在其他人身上使用的确切步骤,

git reflog

这会为您提供最近活动的日志,在这样的列表中查找您的提交:

f2ff96e HEAD@{3}: checkout: moving from multi_content_support to dynamic-contents
b6ebc14 HEAD@{4}: commit: FixedContainer and MutableContainer added with dynamic support, Image, Label, Button and TextInputField upgraded to dynamic

在我的案例“b6ebc14”

中找到您提交的ID

然后使用git reset和你的id:

git reset --hard b6ebc14

etvoilà,git会友好地阻止你的焦虑症;)

祝你好运!