比如我现在在工作区新建一个文件叫test.html,然后git status:git检测到这个新添加的文件,提示通过add加入暂存区。下面执行:git reset --hard貌似没有执行什么,再看git status:还是刚添加文件时的git status提示,新添加的test.html没有被删除。现在执行:git add dist/test.html在查看git status状态:新添加的test.html放入暂存区,下面执行:git reset --hard再看git status,工作区和暂存区全部干净了,新添加的test.html也没有了。总结下两次操作的区别:同样是新建了一个test.html文件第一种是直接git reset --hard,新建test.html文件在工作区被保留第二种是先add这个新建test.html文件,被添加到暂存区,然后git reset --hard,工作区的test.html文件也被删除了。如果git reset --hard是拿上次提交的记录来覆盖工作区和暂存区的话,那么第一种情况时,test.html就应该被删除。如果是git reset --hard不对没有被追踪的文件进行处理的话,第二种情况下,test.html在工作区不会被删除。自己已经晕了,等git来解答,我觉着这很可能是git的一个bug。