Appearance
git reset
注意
git reset 命令会改变分支的历史记录,并且具有破坏性。在执行 git reset 命令之前,请确保已经备份了重要的更改,以防止数据丢失。如果您仅需要查看提交历史记录或者撤销更改,可以使用 git log 和 git checkout 命令。
简介
git reset
命令用于将分支的指针移动到指定的提交或者重置工作目录和暂存区的状态。git reset
命令可以用于取消提交、删除暂存区中的更改或者将分支重置到早期的提交。
shell
git reset [<mode>] [<commit>]
--mixed(默认)
: 将当前HEAD
指向指定commit
,移除暂存区,保留工作区,;--soft
: 将当前HEAD
指向指定commit
,保留暂存区与工作区;--hard
: 将当前HEAD
指向指定commit
,丢弃工作区与暂存区。
常见用法:
取消提交,移除暂存区:git reset HEAD~1
,将当前分支的指针移动到上一个提交,并将更改保留到工作目录不变,移除暂存区。 取消提交,保留暂存区与工作区:git reset --soft HEAD~1
,将当前分支的指针移动到上一个提交,并将更改保留到暂存区,工作目录不变。 完全重置分支,丢弃工作区与暂存区:git reset --hard commit_hash
,将当前分支的指针移动到指定的提交,并将工作目录和暂存区还原到指定的提交状态。此操作会丢弃当前分支的历史更改,只保留指定提交之后的更改。