git reset --hard xxx
总的来说,git reset 命令用于将现在的版本回滚到过去的某个版本。
其中,git reset --hard会让目前的工作目录中的数据和提交记录都回到过去的某次commit后的状态。
演示如下:
为了方便演示,我commit了三次改动,分别命名为reset test 1,reset test 2,reset test 3。
根据git status 的信息我们可以知道,当前工作目录中的数据和reset test 3是一致的。
我们使用git reset --hard
可见,版本彻底退回到了reset test 2。
git reset --soft xxx
git reset --soft 会让版本回到某次commit后的状态,但并不改动工作目录中的文件。这个时候使用git status,会发现有一些文件尚待提交。
可见,在reset test 2 中被提交的 reset2.html现在变为了一个未提交的新文件。
git revert xxx
git revert 与 git reset 不同, git revert 的撤销行为本身也会被作为一次commit 保存在log中。