【git笔记】回退版本

git笔记 回退版本

说明

介绍几种git回退版本的命令。环境:Ubuntu/Debian。

命令

回退到上一个版本

git reset --hard HEAD^

或者

git reset --hard HEAD~1

在git中,HEAD表示当前版本,HEAD^HEAD~1就是表示上一个版本。

该命令执行后,将会回退所有内容到上一个版本,包括本地仓库(local repository),暂存区(staging area)与工作区(working directory)都回到上一次版本。

如果只想把本地仓库(local repository)和暂存区(staging area)回到上一次版本,工作区(working directory)的内容保留,可以将参数--hard更换为--mixed或者直接删除--hard命令。命令如下:

git reset HEAD^
git reset --mixed HEAD^

或者

git reset HEAD~1
git reset --mixed HEAD~1

如果只想把本地仓库(local repository)回到上一次版本,暂存区(staging area)和工作区(working directory)的内容保留,可以将参数--hard更换为--soft。命令如下:

git reset --soft HEAD^

或者

git reset --soft HEAD~1

回退到上上的版本,或者叫做回退到上2个版本

git reset --hard HEAD^^

或者

git reset --hard HEAD~2

HEAD^^HEAD~2就是表示上2个版本。

其他与回退到上一个版本章节内容相同。

回退到上上上的版本,或者叫做回退到上3个版本

git reset --hard HEAD^^^

或者

git reset --hard HEAD~3

HEAD^^^HEAD~3就是表示上2个版本。

其他与回退到上一个版本章节内容相同。

回退到上10个版本

以此类推,回退10个版本就是使用10个^或者使用~10

git reset --hard HEAD^^^^^^^^^^

或者

git reset --hard HEAD~10

回退到特定版本

git reset --hard <commit>

其中的<commit>是指commit的ID,可以使用git log命令进行查看,使用示例如下:

使用示例

首先使用git log命令查看commit的ID是多少

例如

commit d258adaeb1bc51abd8ffb2841bf2f19d2d70fcae
Author: root <root@Linux-host.(none)>
Date:   Wed Jan 20 23:15:34 2021 +0800

    version 3

commit 96d1b8ceb1bc51abd8ffb2841bf2f19d2d70fcae
Author: root <root@Linux-host.(none)>
Date:   Wed Jan 20 23:14:54 2021 +0800

    version 2

commit d3bc7b4eb1bc51abd8ffb2841bf2f19d2d70fcae
Author: root <root@Linux-host.(none)>
Date:   Mon Jan 20 22:57:06 2021 +0800

    version 1

假如要回退到version 2,就输入

git reset --hard 96d1b8ceb1bc51abd8ffb2841bf2f19d2d70fcae

或者

git reset --hard 96d1b8c

输入完命令后就会显示

HEAD is now at 96d1b8c version 2

当前就已经是version 2了。

恢复到回退之前的版本

git reset --hard <commit>

和回退特定版本相同的命令,需要找到之前版本commit的ID

使用上个示例,通过查看之前的git log信息,可以直到回退前的版本是d258adaeb1bc51abd8ffb2841bf2f19d2d70fcae,所以就输入

git reset --hard d258adaeb1bc51abd8ffb2841bf2f19d2d70fcae

或者

git reset --hard d258ada

输入完命令后就会显示

HEAD is now at d258ada version 3

如果之前的git log信息已经丢失,可以使用git reflog查看命令的历史记录,也就能找到之前版本commit的ID。

例如:

96d1b8c HEAD@{0}: reset: moving to 96d1b8
d258ada HEAD@{1}: commit: version 3
96d1b8c HEAD@{2}: commit: version 2
d3bc7b4 HEAD@{3}: commit: version 1

可以看到之前提交的version 3的commit id是d258ada

输入

git reset --hard d258ada

就可以恢复版本。


[参考资料]

git Documentation

版本回退


本文链接:https://blog.csdn.net/u012028275/article/details/113830199

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值