git reset 与 git revert的区别

2017-07-25  本文已影响0人  饥人谷_Zachary

git reset --hard xxx

总的来说,git reset 命令用于将现在的版本回滚到过去的某个版本。
其中,git reset --hard会让目前的工作目录中的数据和提交记录都回到过去的某次commit后的状态。
演示如下:

image.png

为了方便演示,我commit了三次改动,分别命名为reset test 1,reset test 2,reset test 3。
根据git status 的信息我们可以知道,当前工作目录中的数据和reset test 3是一致的。
我们使用git reset --hard

image.png

可见,版本彻底退回到了reset test 2。

git reset --soft xxx

git reset --soft 会让版本回到某次commit后的状态,但并不改动工作目录中的文件。这个时候使用git status,会发现有一些文件尚待提交。

image.png

可见,在reset test 2 中被提交的 reset2.html现在变为了一个未提交的新文件。

git revert xxx

git revert 与 git reset 不同, git revert 的撤销行为本身也会被作为一次commit 保存在log中。


image.png
上一篇下一篇

猜你喜欢

热点阅读