git reset --hard xxx、git reset --soft 及git revert的区别

git reset --hard xxx、git reset --soft 及git revert的区别

在git操作中有时候我们会进行错误的commit,这个时候想要撤销这次提交可以使用git reset命令

git reset --hard xxxx

彻底回退版本,连本地文件都会被回退到上个版本的内容

git log 查看本地commit信息

git reset --hard xxx、git reset --soft 及git revert的区别_第1张图片
image

用git log查看到 Mon May 28 17:20:21 2018 有一次上传
这次我创建了一个叫a.html的文件并上传到了本地仓库
现在我想撤销这次上传

git reset --hard HEAD~1
git reset --hard xxx、git reset --soft 及git revert的区别_第2张图片
image

本地文件和commit信息都回退了

git reset --sort xxxx

只回退commit,如果你想再次提交直接git commit即可

git reset --hard xxx、git reset --soft 及git revert的区别_第3张图片
image
git reset --soft HEAD~1
git reset --hard xxx、git reset --soft 及git revert的区别_第4张图片
image

本地文件还在,当commit信息已经回退

Revert

Revert 撤销一个提交的同时也会重新创建一个提交。这是一个安全的方法,因为它不会重写提交历史。比如,下面的命令会找出倒数第二个提交,然后创建一个新的提交来撤销这些更改,然后把这个提交加入项目中。
相比git reset,它不会改变现在的提交历史。因此,git revert可以用在公共分支上,git reset应该用在私有分支上。

你也可以把git revert当作撤销已经提交的更改,而git reset HEAD用来撤销没有提交的更改。

你可能感兴趣的:(git reset --hard xxx、git reset --soft 及git revert的区别)