- 这将取消您可能已暂存的所有文件
git add
:git reset
- 这将还原所有本地未提交的更改(应在repo root中执行):
git checkout .
您还可以仅将未提交的更改还原到特定文件或目录:git checkout [some_dir|file.txt]
还原所有未提交更改的另一种方法(更长时间键入,但可以从任何子目录工作):git reset --hard HEAD
- 这将删除所有本地未跟踪文件,因此只保留git跟踪文件:
git clean -fdx
警告:-x
还将删除所有被忽略的文件,包括指定的文件.gitignore
!您可能希望-n
用于预览要删除的文件。
总结一下:执行以下命令基本上等同git clone
于原始来源的新鲜(但它不会重新下载任何内容,因此速度更快):
git reset git checkout . git clean -fdx
这种情况的典型用法是在构建脚本中,当你必须确保你的树是绝对干净的 - 没有任何修改或本地创建的目标文件或构建工件,并且你想让它工作得非常快并且不能重新每次都克隆整个存储库。