参考
1. Git的所有操作实际上是在操作这三个区域的状态(或内容)
2. 区别
checkout是会修改HEAD的指向,变更Index区域里的内容,修改Working Directory里的内容。
这看上去很像reset --hard,但和reset --hard相比有两个重要的差别
- reset会把working directory里的所有内容都更新掉
- checkout不会去修改你在Working Directory里修改过的文件
- reset把branch移动到HEAD指向的地方
- checkout则把HEAD移动到另一个分支