撤消 git checkout 覆盖未提交的文件

hol*_*son 9 git git-checkout

我曾使用命令 git checkout --$(git ls-files -m)撤消rm某些文件上的 git 。但是,我在未提交的情况下修改了其他一些文件,并且这些文件已恢复为之前的提交,丢失了未提交的更改。

有没有办法恢复这些更改?
我想不会使用 git,因为更改没有添加到 git 中。在 Mac 上,如果有帮助的话。

谢谢汤姆

Von*_*onC 3

Does git checkout really silently overwrite uncommitted changes?
而2018年的答案依然是“是”(刚刚用2.11测试过)

2019 年 8 月,Git 2.23 确实如此,只不过现在有一个更明确的git restore命令

一个简单的方法git restore .还可以从索引内容中静默恢复工作树(因此,如果文件被修改但没有添加到所述索引,它们的更改仍然会丢失)

但至少在文件检出和分支检出之间不会出现混淆