都是用来撤销某项操作,只是工作的领域和方式不同
- git reset --soft xxx 是从暂存区中撤回,-soft HEAD~1 意为将版本库软回退1个版本,所谓软回退表示将本地版本库的头指针全部重置到指定版本,且将这次提交之后的所有变更都移动到暂存区
![ce0a59befe1ae570ad68ffe6094bdb8b.png](https://i-blog.csdnimg.cn/blog_migrate/f32bf454ebfcd226e0d5ad6d3a1a9c5c.jpeg)
![212ffd9a0a1adc2d8277288d40fc1936.png](https://i-blog.csdnimg.cn/blog_migrate/72707b4ddd445ea171dc0d7549c81053.jpeg)
- git reset --hard xxx 完全舍弃你没有提交的改动和将你本地库全部的操作的指针退回到指定操作。--hard HEAD~1 (或是版本号)意为将版本库回退1个版本,但是不仅仅是将本地版本库的头指针全部重置到指定版本,也会重置暂存区,并且会将工作区代码也回退到这个版本。
![251315ce8da924eb6365d6a3842996fd.png](https://i-blog.csdnimg.cn/blog_migrate/f22febc0f474c29102f23bcfe9ebc928.jpeg)
- git revert xxx 在编辑器内修改的内容撤回。撤销一个提交的同时会创建一个新的提交,-- git revert 也是撤销命令,区别在于reset是指向原地或者向前移动指针,git revert是创建一个commit来覆盖当前的commit,指针向后移动。
![6017444627adb7bd7b95ed694dbcb8d5.png](https://i-blog.csdnimg.cn/blog_migrate/49e27da6b466d3f6f5fec84af326447f.jpeg)