回滚区间分类:
1.软回退
只回退到commit 区(本地仓库区),commit提交历史和工作区代码变更还保留:
git reset --soft abc1234
2.混合回退(默认)
回退到暂存区,commit历史不保留,工作区代码保留:
git reset --mixed abc1234
3.硬回退
彻底回退 commit 历史、暂存区和工作区,工作区代码不被保留(注意,这会导致所有未提交的变更丢失):
git reset --hard abc1234
1.根据版本号回滚
git reset --hard HEAD^ # 回退到上一个版本
git reset --hard HEAD~n # 回退到n个版本之前,n为数字
2.根据提交ID回滚
git reset --hard <commit_hash> # 回退到指定的提交,commit_hash是具体的提交ID
1.根据版本号回滚示例:
soft 可以替换成hard mixed
git reset --soft HEAD^ (回滚到上一个版本)
git reset --soft HEAD~2 (回滚两个版本)
git reset --soft HEAD~3 (回滚三个版本)
2.根据提交ID回滚示例:
-
查看当前状态
首先查看当前的提交历史:
git log --oneline
输出类似如下:
def4567 Second commit abc1234 First commit
-
执行回滚 ( soft 可以替换成hard mixed)
使用
git reset --soft
来回退到abc1234
:git reset --soft abc1234
-
查看当前状态
这时再次查看提交历史和状态:
git log --oneline
现在你会看到:
abc1234 First commit
但是,此时你的工作目录和暂存区还保留着
def4567
的更改内容。