彭某的技术折腾笔记

彭某的技术折腾笔记

Git 版本回退

25
2023-07-30

Git 版本回退

2023年7月29日

摘要

在使用 git add 将某些文件添加进暂存区后,有时会需要撤销添加,恢复原本的状态,此时可使用 git restore 命令来进行撤销。除此之外,如果需要回退到之前的某个版本,则可以使用 git restore 来进行版本回退。本文将对这两个命令进行简单的介绍

撤销暂存区修改

在未对更改进行提交的情况下,如果想要撤销一些更改,可以使用以下命令:

git restore --OPTION FILE

其中,--OPTION 有以下几种常用选项:

  • --worktree - 默认选项,不加选项则执行此选项,将会把指定文件直接恢复至上一次提交的状态
  • --staged - 将更改从暂存区移出,但保留本地文件内部的更改
  • --source=COMMIT_ID - 将文件恢复至某一次 commit 时的状态

版本回退

在已经经过 git commit 提交了更改过后,要是想回退之前的某一版本,便只能使用 git reset 命令完成,使用方式如下:

git reset --OPTION TARGET

其中,--OPTION 可用的选项为:

  • --hard - 硬性重置,本地工作目录和暂存区都完全重制到目标版本
  • --mixed - 默认参数,不加选项就是这个选项,保留工作目录的状态,但清空暂存区,等于从目标版本后从来没 git add
  • --soft - 工作目录不变,将重置带来的更改放进暂存区,就像是更改回目标版本后先 git add,再更改至当前工作区的状态但还没 git add

此外,TARGET 的格式为:

  • COMMIT_ID - 指定 commit

  • origin/master - 远程的版本

  • HEAD or HEAD~0 - 当前所处的版本(最近一次 commit)

  • HEAD^ or HEAD~1 - 上一个版本

  • HEAD^^ or HEAD~2 - 上上个版本

  • 以此类推

如果只是想重置某个文件,可以在命令后追加文件名,例如:

git reset --hard HEAD README.md

当然,对于单个文件的回退,也可使用 git restore 完成。

  • 0