git reset hard、git reset soft 和git revert的区别
我们在日常的git bash使用中经常会遇到需要回退或撤销的情况,这时候只要熟悉git reset和git revert命令即可方便我们进行相关操作
众所周知,Git库中的代码文件都会处于以下三种状态之一:
- 已提交(committed)已保存在本地数据库
- 已修改(modified)修改了某个文件的内容或者标题,但还没有提交保存
- 已暂存(staged)把已修改的文件放在下次提交时要保存的清单中
git reset和git revert 命令也是基于以上三种状态而生效
git reset --hard 与git reset --soft的作用和区别
-
git reset --hard
输入此命令后,本地修改文件将会回退到上一次修改状态之后,在此操作之前的所有文件记录都被彻底删除,工作区和暂存区都会进行变更
示例1
图中显示该仓库回退到增加b.md文件之前
git reset --soft
输入此命令后,修改将从暂存区中撤回
示例2
git revert
输入此命令是把在编辑器内修改的内容进行撤回,撤回的同时会创建一个新的提交文件。
示例3