-
情景一:工作区间修改代码改乱了,想直接撤销修改的。
git checkout -- filename
-
情景二:改错了工作区间的代码,并且添加到暂存区了,想要撤销这次操作。
git reset HEAD <filename>
这时候就回到了情景一。 -
情景三:提交了有bug的代码到版本库,想要撤销本次提交(回退到上一个版本)。
git reset --hard HEAD^
(上一个版本就是HEAD^,上上一个版本就是HEAD^^)
使用 hard 撤销修改,不会保留修改的内容,如果撤销提交还想保留修改的内容可以使用 --soft 或者 --mixed
参数 | 区别 |
---|---|
soft | 把修改内容放在缓存区,相当于git add之后状态 |
mixed | 不把修改内容放在缓存区,相当于git add之前的状态 |
hard | 不保留修改内容 |
- 情景四:pull代码,选择了错误的分支,想要撤销pull。
首先使用git reflog
命令查看你的历史变更记录,如下图。
再使用git reset --hard HEAD@{n}
(n是回退的引用位置) 回退。
注意:git reset --hard HEAD@{1}
等同于git reset --hard c1bd553