不去深究的话,

就文件版本而言, checkout侧重修改工作区,而reset侧重修改暂存区。

就提交版本而言,checkout全改,reset有三种选项;checkout移动的是HEAD,reset移动的是HEAD 和分支,所以光靠reset达不到游离态。