概括
这篇博客分析了git reset的用法,我将从以下几个命令介绍它:
- git reset --soft
- git reset --mixed
- git reset --hard
git 的三种状态
一个git项目中的文件会存在三种状态:
- 处于工作区:也就是我们当前正在写的,但是未使用add添加到暂存区的文件
- 处于暂存区:使用add添加后的工作区文件
- 处于仓库:使用commit提交后的暂存区文件
git reset
假定一个文件File.txt,经历3次提交,每次的版本记作v1,v2,v3。在最后一次提交后,Head指向最后一次提交。此时,工作区,暂存区,仓库追踪的都是最后一个版本的File.txt。
git reset --soft
使用git reset --soft eadfa 返回到上次提交,此时Head指向eadfa。注意soft只回退Head指针,暂存区和工作区不变&