一、git reset
git reset [--soft | --mixed | --hard] [目标版本]
[目标版本]:
- 使用
git log获取目标版本的SHA - 使用
git reflog获取目标版本的短SHA HEAD: 当前版本HEAD^:上一个版本HEAD^^:上上一个版本HEAD~数字: 回退几个版本
--soft:版本回退,暂存区和工作区不变
--mixed(默认):版本和暂存区回退,工作区不变
--hard:版本、暂存区、工作区回退
二、git revert
git revert [目标提交]
创建一个新的提交去撤销目标提交
三、git read-tree或git restore
git read-tree --reset -u [目标版本]
git 2.23.0新增git restore
git restore --source=[目标版本] --staged --worktree .
这两个本质是一样的,创建一个新的提交,将目标版本到新版本之间的全部撤销
