你如何撤销;“放弃所有更改”;在VS代码/Git中

你如何撤销;“放弃所有更改”;在VS代码/Git中,git,version-control,visual-studio-code,Git,Version Control,Visual Studio Code,我恐怕我已经知道答案了,不过还是来了。。 我无意中点击了VS代码(OSX)中的“放弃所有更改”,现在一个月的工作都没有了。噗的一声。问题是,我没有正确设置GIT,所以我还没有做任何提交。不管怎样,我能把工作拿回来吗?现在我的工作目录是空的 [编辑] 我应该澄清一下,控制台日志说它做了一个“git clean-f-q”,这意味着文件不见了。但我想知道VSCode是否有备份、历史记录或缓存。。或者别的什么。我绝望了。小结:你的作品丢失了,无法恢复 VS代码中的“全部清除”(放弃所有更改)选项基本上执

我恐怕我已经知道答案了,不过还是来了。。 我无意中点击了VS代码(OSX)中的“放弃所有更改”,现在一个月的工作都没有了。噗的一声。问题是,我没有正确设置GIT,所以我还没有做任何提交。不管怎样,我能把工作拿回来吗?现在我的工作目录是空的

[编辑]
我应该澄清一下,控制台日志说它做了一个“git clean-f-q”,这意味着文件不见了。但我想知道VSCode是否有备份、历史记录或缓存。。或者别的什么。我绝望了。

小结:你的作品丢失了,无法恢复

VS代码中的“全部清除”(放弃所有更改)选项基本上执行:

git clean -fd
git checkout -- .
因此,
gitclean-fd
是否能够撤销对未提交更改的放弃,就取决于git了。不幸的是,更改没有存储在git中,因为它没有提交,所以在执行
git clean-fd
之后,git将强制删除未跟踪的文件


执行命令后,
git checkout--.
,git会将git中所有修改过的文件作为上次提交的版本进行签出。

在意外按下错误文件上的放弃更改btn后,我在这里结束) 由于没有找到恢复的方法,我在该文件中尝试了简单的CMD+Z(CTRL+Z),然后砰的一声——一切都回来了,所以不要放弃尝试:)
非常高兴

我现在在GitHub桌面客户端的Windows PC上做了同样的事情。我原以为它会还原未受限制的内容,但它决定全部还原。嗯

幸运的是,我已经检查了垃圾箱,所有丢弃的文件都在那里(以及我想首先删除的不需要的文件,之后我会更仔细地处理它们,首先恢复这些文件)


不确定MacOS是否也会将它们移到垃圾箱。仔细检查,你可能会很幸运;)

如果无法使用Ctrl+Z或Command+Z撤消或在垃圾箱/回收站中找不到文件,则可以使用文件恢复软件进行恢复。我可以使用梨状肌的免费版本Recuva来恢复我意外放弃的更改。

在我的情况下,我错误地放弃了分支的更改。此代码处于提交状态,但未被推送。 我转到
{projectPath}.git/logs/refs/heads/
,找到一个带有分支的文件。在这个文件中,我找到了标题列表。
然后在控制台中,我使用
git reset{commitHash}
撤消提交。

我刚刚遇到了这个问题。我按下了VS代码中错误文件旁边的“放弃更改”箭头(在添加和提交之前)。我以前的文件不在回收箱中,经过研究,CTRL+Z/CMD+Z是唯一的选择。如果您已经关闭了该文件,那么您可能很不幸运气不佳。

那太糟糕了,但我运气不错

我能够恢复文件,我单击了,
放弃所有更改
。 毫无疑问,git没有恢复丢失的更改的选项,但我们的系统(和VScode)有

我是如何恢复这些更改的?
  • 我刚刚用VScode再次打开了这些文件,使用
    ctrl+p
  • 打开后,我按了
    ctrl+z
    尝试撤消我的更改,猜猜看,我的系统剪贴板帮助我恢复了所有精确的更改
  • 如果您正在处理一个新文件,该文件现在已被删除,并且没有封装外形。您仍然可以恢复该文件,只需按ctrl+p键即可,因为该文件已在VScode中打开,标签为
    (已删除)

    简而言之,只要您没有重新启动VScode,您仍然可以恢复更改。
    如果这个解决方案也适用于你,请随意投票支持我的答案。谢谢

    在源代码管理上,所有项目都在那里:将项目内容检索到vs code explorer是一个问题。 答案是更改项目的视图,这样您就可以在不使用文件夹的情况下查看所有内容。
    然后命令+A选择全部并按open,一旦全部打开,它们将在vs代码管理器上可用,在该文件中

    ,将恢复,即使您更改了分支或关闭了文件)

    请查看下面的屏幕截图,从中可以放弃所有更改,也可以逐个执行


    在我的例子中,我在Elementy OS中丢弃了通过DDEV运行的laravel项目中的config.yaml文件,因此为了将其恢复到当前项目中,我去了垃圾桶,用ls-al显示隐藏的文件夹,然后输入隐藏文件夹,用cp命令将我需要的复制到我的项目文件夹中。

    可能重复,也可能重复另一个提示(不幸的是,这现在对你没有帮助,但有助于继续):未来参考,除非你正在使用PyCharm,只需使用git discard changes打开文件并点击undo,这到底意味着什么?我什么都不懂,有人能解释吗,?有什么方法可以撤销未提交的更改吗?对于通过谷歌到达这里的人来说:它已经不存在了。你唯一的希望是磁盘备份、以前的提交或回收站(Windows)/垃圾箱(OSX)。我强烈不同意这个公认的答案。正如roslyn和EFFG的回答中所述,文件可能会在VS代码上使用ctrl+Z或在垃圾箱中恢复。@ThomasVuillemin即使文件可能在垃圾箱中,问题也与git有关。事实上,这个行为本身是一个不可逆转的行为,不幸的是。@user1026622好吧,这就是问题所在:阅读这个问题似乎不仅仅是关于git的,而且是关于VS代码的,谷歌对这两个方面的研究会把你带到这里,而还有其他关于git的问题。即使git操作是不可逆的,在VS代码中执行它的特定情况下,也有方法恢复它。我认为这个问题的答案应该反映出这一点。你刚刚让我省去了一些心痛。谢谢你。在MacOS的垃圾桶中找到。这应该是accep