协慌网

登录 贡献 社区

如何还原未提交的更改,包括文件和文件夹?

是否有一个 git 命令可以恢复工作树和索引中的所有未提交的更改,还可以删除新创建的文件和文件夹?

答案

您可以运行以下两个命令:

# Revert changes to modified files.
git reset --hard

# Remove all untracked files and directories. (`-f` is `force`, `-d` is `remove directories`)
git clean -fd

如果要仅在当前工作目录中还原更改,请使用

git checkout -- .

在此之前,您可以在不实际执行任何操作的情况下列出将要还原的文件,只需检查将要发生的情况,即可:

git checkout --

使用 “git checkout - ...” 放弃工作目录中的更改

git checkout -- app/views/posts/index.html.erb

要么

git checkout -- *

删除对 git status 中未分段文件所做的所有更改,例如

modified:    app/controllers/posts.rb
modified:    app/views/posts/index.html.erb