对文件操作的总结
git checkout .
暂存区->工作区
git checkout head .
head ->暂存区->工作区
git reset file
head->暂存区
how to use checkout to discard file changes
git checkout <tree-ish> -- <pathspec>
分支名,可以指定为head,则会直接从版本库拉到工作区.
-- 分隔作用? 官方说明(Do not interpret any more arguments as options.)
指定文件. "." 指代所有
git 分层操作命令

图来自参考2.
reset 默认为mixed 模式,可选hard 或soft模式,详见
git reset --help
参考:
Why do we use "git checkout" to discard file changes?
Resetting, Checking Out & Reverting
[git reset soft,hard,mixed之区别深解](