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
就可以恢复版本。
[参考资料]
本文链接:https://blog.csdn.net/u012028275/article/details/113830199