reset
比如我们在日常的开发中,有很多时候需要回退到之前未开发的版本。大概会有以前几种场景。
1,已经commit了最新的changes。
这个时候我们想要回退到没有改动的时候。可以使用git reset
git reset 命令格式为git reset [–soft | --mixed | --hard] []
是git中最常用的命令,但也是最危险,最容易被误用的命令。reset命令本身很简单,但是它的参数让人迷惑,主要的参数有soft、 mixed、hard,它们告诉Git,当执行reset时,要对index和working copy做什么。
soft
–soft参数只告诉Git将其他的commit重置到HEAD,就仅此而已。index和working copy中的文件都不改变。(会保留暂存区和工作目录)
实例:
git reset --soft [commitId] 回退到某个版本,只回退了commit的信息。如果还要提交,直接commit即可
mixed (默认参数)
–mixed 改变HEAD和index,指向那个你要reset到的commit上。而working copy文件不被改变。当然会显示工作目录下有修改,但没有缓存到index中。(不会保留暂存区,只保留工作目录的改变)
hard
–hard HEAD & index & working copy同时改变到你要reset到的那个commit上。这个参数很危险,执行了它,你的本地修改可能就丢失了。
git reset --hard HEAD 回到最新的commit 就是我们刚刚frist commit
git reset --hard HEAD^ 回到刚拉去下来的版本。
这时候我们看到Text.txt文件被删除了。