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信息

image

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

git reset --hard HEAD~1
image

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

git reset --sort xxxx

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

image
git reset --soft HEAD~1
image

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

Revert

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

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

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容