基本介绍
git reset 命令可以撤销一些提交,回到之前的某个状态。使用 git reset 命令的一般语法如下所示:
git reset <commit> [--option]
其中,<commit> 是你想要回到的某个提交的 SHA1 值或者可以被转换为 SHA1 值的标签名称,--option 是可选的模式参数。
三种模式
git reset命令有--soft,--mixed和 --hard三种模式:
-
git reset --soft:这种模式会将HEAD指针指向指定的提交,但不会修改索引和工作目录的内容,也不会改变本地仓库的历史记录。这意味着,你可以在这种模式下回退到之前的提交,然后重新提交修改。
-
git reset --mixed:这种模式会将HEAD指针指向指定的提交,并将索引的内容回滚到该提交的状态,但不会修改工作目录的内容。这意味着,索引的内容将与工作目录的内容不一致,必须手动将工作目录的内容重置为索引的旧版本,然后再次提交修改。此为默认方式,等同于不带任何参数的git reset
-
git reset --hard:这种模式会将HEAD指针指向指定的提交,并将索引和工作目录的内容回滚到该提交的状态。这意味着,所有的本地修改都将被永久删除,无法恢复,谨慎使用。
另外,如果你想要回到最近一次提交的状态可以使用 git reset HEAD 命令。