Git -- 版本回退

385 阅读1分钟
# 版本回退是指将版本库从当前版本回退到其他版本

git reset --hard 版本号

有时,我们需要将Git版本回退(还原)到以前的某个版本,可以使用 git reset 命令

在git中,HEAD指针指向的是当前版本,也就是最新的commit id,上一个版本是 HEAD^,上上个版本就是 HEAD^^,上50个版本可以写作HEAD~50

# 可以使用下面的命令,回退到上一个版本
 
git reset --hard HEAD^

这个时候,我们再使用 git log 命令查看版本库被修改的日志。就会发现,看不到被回退的版本之后的历史记录了。

如果,想再回到最新的版本,怎么办?

可以使用命令 git reflog 来查看你的每一次操作日志,该命令可以输出对应的版本号的操作记录。这样,我们就可以恢复到任意版本了。

# 就可以使用下面的命令还原到指定的版本,版本号(commit id)没必要写全,一般写前七位就够了,Git会自动去匹配:
 
git reset --hard 4b2a0c8

git reset 有很多可用选项,可以使用命令 git reset -h 来查看

其中最常用的三个选项是:

  • --mixed: reset HEAD and index。表示重置 HEAD 指针和 index 暂存区,但保持工作区不变。它是默认选项。

  • --soft: reset only HEAD。表示仅仅重置 HEAD 指针,即只改变 HEAD 的指向,但保持工作区和暂存区不变。

  • --hard: reset HEAD, index and working tree。表示重置 HEAD 指针、index 暂存区和工作区。这个才是完整的版本回退。