我正在尝试撤消自上次提交以来的所有更改。我试过了git reset --hard,git reset --hardHEAD。我的回应是 head 现在是 18c3773 ......但是当我查看我的本地源时,所有文件仍然存在。我错过了什么?
git reset --hard
git reset --hardHEAD
这将取消暂存您可能已暂存的所有文件git add:
git add
git reset
这将恢复所有本地未提交的更改(应在 repo root 中执行):
git checkout .
您还可以仅将未提交的更改还原到特定文件或目录:
git checkout [some_dir|file.txt]
恢复所有未提交更改的另一种方法(更长的类型,但适用于任何子目录):
git reset --hard HEAD
git clean -fdx
警告: -x 还将删除所有被忽略的文件,包括由.gitignore! 您可能希望-n用于预览要删除的文件。
-x
.gitignore
-n
总结一下:执行下面的命令基本上等同于git clone从原始源下载(但它不会重新下载任何东西,所以要快得多):
git clone
git reset git checkout . git clean -fdx
典型的用法是在构建脚本中,当您必须确保您的树绝对干净时 - 没有任何修改或本地创建的目标文件或构建工件,并且您希望使其工作非常快并且不重新 -每次克隆整个存储库。