您想丢弃所有本地的修改,包括已修改的文件 (modified) 和 未追踪的文件 (untracked files)。
这需要两步操作,因为 Git 处理这两种情况的命令不同。
方案一:分步操作(推荐,更安全)
第1步:撤销对已修改文件的更改
这些是 "Changes not staged for commit" 下列出的文件。
使用 git restore 命令:
git restore .
-
这个命令会撤销当前目录下所有已修改但未暂存(add)的文件的更改,让它们恢复到上次提交时的状态。
-
(旧版本的 Git 使用
git checkout -- .,效果相同)
第2步:删除未追踪的文件
这些是 "Untracked files" 下列出的文件。git restore 不会影响它们。
需要使用 git clean 命令。
首先,建议先预览一下将要删除哪些文件(不会真的删除):
git clean -n
确认无误后,执行真正的删除命令:
git clean -f
-f是--force的缩写,因为删除操作是不可逆的,Git 要求你强制执行。
方案二:一个命令搞定(快速但需谨慎)
如果你确定要丢弃所有修改和未追踪的文件,可以把两个命令连起来:
git restore . && git clean -f
总结
| 你的需求 | 对应命令 | 解释 |
| :--- | :--- | :--- |
| 只想撤销已修改的文件 | git restore . | 恢复 modified 列表中的文件,不影响新文件。 |
| 只想删除未追踪的新文件 | git clean -f | 删除 untracked 列表中的文件,不影响已修改文件。 |
| 全部都不要了 | git restore . && git clean -f | 先恢复已修改文件,再删除新文件,彻底回到干净的工作区。 |
请注意: 这些操作会永久丢弃你的本地修改,执行前请务必确认这些修改真的不再需要了。