◆
Git reset 版本回退与撤销 commit 详解
git reset
用于回退版本,可以指定退回某一次提交的版本。 语法格式
git reset [--soft | --mixed | --hard] [HEAD]
tip
--mixed 为默认,可以不用带该参数,用于重置暂存区的文件与上一次的提交(commit)保持一致,工作区文件内容保持不变。
示例
# 回退所有内容到上一个版本
git reset HEAD^
# 回退 hello.php 文件的版本到上一个版本
git reset HEAD^ hello.php
# 回退到指定版本
git reset 052e221
HEADHEAD / HEAD~0表示当前版本HEAD^ / HEAD~1上一个版本HEAD^^ / HEAD~2上上一个版本HEAD^^^ / HEAD~3上上上一个版本- 具体版本号如:
2699f31c
-- hard撤销工作区中所有未提交的修改内容,将暂存区与工作区都回到上一次版本,并删除之前的所有信息提交 你的stage区和工作目录里的内容会被完全重置为和HEAD的新位置相同的内容。换句话说,就是你的没有commit的修改会被全部擦掉。
git reset –hard HEAD~3 # 回退上上上一个版本
git reset –hard bae128 # 回退到某个版本回退点之前的所有信息。
git reset --hard origin/master # 将本地的状态回退到和远程的一样
--soft保留工作目录和暂存区中的内容,并把重置HEAD所带来的新的差异放进暂存区
版本回退
git用HEAD表示当前版本 对应commit id为8adee7099a9f6a28b216bac851d0aaf0c88e46b8- 上一个版本
HEAD^orHEAD~,上两个版本HEAD^^orHEAD~2
回退命令
回退到上一个版本
git reset --hard HEAD^
回退到指定版本,版本号可以不写全
git reset --hard 01ca457feac6c39cfcb00f26331ed9d135b95e4b

git 撤消已经提交的 commit
执行 commit 后,还没执行 push 时,想要撤销这次的 commit
- 撤销了
commit,如果想要连着add也撤销的话,--soft改为--hard(删除工作空间的改动代码)。 HEAD^表示上一个版本,即上一次的commit,也可以写成HEAD~1。- 如果进行两次的
commit,想要都撤回,可以使用HEAD~2。 --soft不删除工作空间的改动代码 ,撤销commit,不撤销git add file--hard删除工作空间的改动代码,撤销commit且撤销add
git reset --soft HEAD^
git reset --soft HEAD~
git reset --soft HEAD~2

还没有留言,来发表第一条吧~