git reset --hard xxx , git reset --soft xxx , git revert xxx
git revert三者区别
三者作用都是用来撤销某项操作,只是工作的领域和方式不同。
git reset
git reset 常用于代码回滚,是直接删除指定的 commit, 但是文件和修改会移动到 workspace 工作区。
git reset --soft xxx
从暂存区撤回。soft命令会让版本回到某次commit后的状态,但并不改动工作目录中的文件。执行git reset --soft后
可以看出版本退回了q1,但之前提交的文件变成了有新改动的状态。

图片发自简书App

图片发自简书App
git reset --hard xxx
完全舍弃你没有提交的改动和将你本地库全部的操作的指针退回到指定操作。hard HEAD~1 (或是版本号)意为将版本库回退1个版本,但是不仅仅是将本地版本库的头指针全部重置到指定版本,也会重置暂存区,并且会将工作区代码也回退到这个版本。

图片发自简书App
git revert xxx
是将在编辑器内修改的内容撤回。撤销一个提交的同时会创建一个新的提交。git revert 是HEAD继续前进,只是新的 commit 的内容和要 revert 的内容正好相反,能够抵消要被revert的内容,git reset 是把HEAD向后移动了一下。

图片发自简书App