在使用git的时候不免遇到commit的时候commit了错误的代码的时候,这时候就需要用到git的常用命令之一 reset了.
reset顾名思义为重置.重置的是HEAD指针,可以使HEAD指针移动到任意commit上.
使用git log [--oneline] 命令查看之前所有的commit id.然后使用git reset命令使HEAD指针指向其中的一个id.
git reset 有三个可选参数 --hard --mixed --soft
其中--hard参数表示不但重置HEAD指针而且还会重置当前的暂存区和工作区,这个参数比较危险,会使当前工作区的内容丢失,并且是不可找回的丢失.
--mixed参数为默认参数.该参数会重置HEAD指针并且重置暂存区.但是对工作区却没有什么影响.
--soft参数表示只充值HEAD指针.不改变暂存区和工作区.
若重置了之后又后悔了,那么可以使用git reflog 命令查看最近的HEAD指针的变化.然后根据这里面的commit id 来确定git reset 的id.这样就不怕弄错了
git reset 后面不但可以接commit id 而且可以直接跟文件名称.
若reset后面跟的是文件名称那么将不会重置HEAD指针,而是重置这个文件.重置效果和commit id 一样.