git checkout -- <file> 表示将文件从暂存区的file版本替换到工作区的file版本,如果暂存区没有,就从版本库中的file版本替换工作区的file版本;
git rm --cached <file> 只表示将暂存区的file文件删除。
有时候,我们希望将本地的某个文件忽略,不想让其加入到版本库中,发现在.gitignore中加入忽略文件无效,这是因为.gitignore只对未跟踪的文件有效,也就是对没有添加到工作区的文件有效,那么这时候可以使用上面两个命令把文件设置为未跟踪的状态。