◆

Git reset 版本回退与撤销 commit 详解

2023-02-02 01:370

git reset

用于回退版本,可以指定退回某一次提交的版本。 语法格式

git reset [--soft | --mixed | --hard] [HEAD]

tip

--mixed 为默认,可以不用带该参数,用于重置暂存区的文件与上一次的提交(commit)保持一致,工作区文件内容保持不变。

示例

# 回退所有内容到上一个版本
git reset HEAD^
  # 回退 hello.php 文件的版本到上一个版本
git reset HEAD^ hello.php
  # 回退到指定版本
git reset 052e221
  • HEAD

    • HEAD / 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^ or HEAD~,上两个版本 HEAD^^ or HEAD~2

回退命令

回退到上一个版本

git reset --hard HEAD^

回退到指定版本,版本号可以不写全

git reset --hard 01ca457feac6c39cfcb00f26331ed9d135b95e4b
git reset详解

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
💬留言板0

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

PAGE LOAD / LIVEGit reset 版本回退与撤销 commit 详解加载中