git reset命令用于将当前分支回退到指定的某个版本。
该命令可以看做commit命令的取反操作,既然可以向前提交,当然也可以向后回滚。可以像事务一样回滚一次到上一次的位置,也可以回滚到指定的位置。这个位置由commitversion决定,每commit一次都会产生一个commitversion值。
1 --hard 选项在帮助文档中的解释是:Resets the index and working tree. Any changes to tracked files in the working tree since <commit> are discarded.
2 commitversion是指定曾经commit的版本,每次commit都会产生唯一一个commitversion,用于标识本次commit。
(1) 那么怎样找到每次commit的commitversion呢?有两个命令都可以达到这个目标:git log 和git reflog两者的区别是:git log查看的日志是相对于当前commitversion之前的所有历史日志,git reflog查看的日志是相对于最后一个commitversion之前的所有历史日志。展开来讲就是,一个是相对历史日志,一个是绝对历史日志。假如你已经reset到某个commitversion了,那么这个时候使用git log只能看到这个commitversion之前的历史日志,看不到之后的历史日志了,但是使用git reflog就可以。
(2) git对离当前版本最近的commitversion提供了快捷方式。用于强制清洗当前工作区不受git管理的文件或目录,帮助git将当前工作区干净的回退到指定commitversion。
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文地址:http://blog.csdn.net/warhin/article/details/46987779