如何在主分支中恢复文件

How can I restore file in master branch

我在名为 feature/restful-api 的分支上编码,我想检出 master 分支中的文件,所以我做了 git checkout master 并更改为 master 分支。
当我想改回去的时候,git告诉我

error: The following untracked working tree files would be overwritten by checkout:
        gradle/wrapper/gradle-wrapper.jar
        gradle/wrapper/gradle-wrapper.properties
        gradlew
        gradlew.bat
Please move or remove them before you switch branches.
Aborting

所以我删除了这些文件并改回feature/restful-api分支。
现在我发现所有的配置都没有了。我怎样才能恢复这些文件?

假设您在 feature/restful-api branch 并且文件更改未提交。

git ls-files --deleted

将列出所有已删除的文件。

git checkout -- <file>

然后这可以用来恢复那些被删除的文件。

您似乎在 Git 不知情的情况下删除了这些文件。在那种情况下 Git 无法帮助您取回它们。我假设它们也不在 Trash/Recycle Bin 中。

如果您使用的是 IntelliJ IDEA,请尝试 Local History 功能。在IDEA中打开项目,右击项目根目录 select Local History > Show History...

我用这种方法恢复了几个文件,可以救命。