git的每次提交都是一个全球唯一hash value而不是一个顺序的数字比如svn,这是由于这样分布式的系统结构决定的。
master和head都指向一个commit对象, 所以说git的版本库里面都是一些相互关联的commit对象
master代表master分支的最近一个commit
head代表整个版本库的最近一个commit
1)如何改变到某一个版本呢
如果想要再找回来的通过 git reflog, 然后再reset一次
2) reset的用法
reset这个命令很关键,花样也有点多
git reset <Commit> path, 这个命令只改名暂存区里面的path指定的文件,没有其他意义
git reset [--soft --mixed --hard]<commit>
soft: 只改变master指向
mixed:改变版本库和暂存区,这也是默认参数
hard: 什么都改了,连工作目录下的都改了
git reset HEAD,这个比较tricky,因为本来就是head所以只改了暂存区