总结:
HEAD
指向当前版本- 穿梭前,用
git log
查看提交历史,确定要回到哪个版本 - 重返未来,用
git reflog
查看命令历史,确定回到未来哪个版本
1
修改文件readme.txt如下
Git is a distributed version control system.
Git is free software distributed under the GPL.
通过git log
可以查看提交历史,以便确定退回到哪个版本
commit 38b14eeddba2b09c28b0f76976dc462259f4daf9 (HEAD -> master)
Author: NuoziHuo <huo_nuo_zi@163.com>
Date: Sun May 29 20:11:46 2022 +0800
append GPL
commit a6a248b7c5030eff34061778290b4da75d6e2cbf
Author: NuoziHuo <huo_nuo_zi@163.com>
Date: Sun May 29 20:09:28 2022 +0800
add distributed
commit 48b96871136919dac793d9b303688eb7727dfb4f
Author: NuoziHuo <huo_nuo_zi@163.com>
Date: Sun May 29 17:02:17 2022 +0800
wrote a readme file
在上面基础上加上--pretty=online
参数
$ git log --pretty=oneline
38b14eeddba2b09c28b0f76976dc462259f4daf9 (HEAD -> master) append GPL
a6a248b7c5030eff34061778290b4da75d6e2cbf add distributed
48b96871136919dac793d9b303688eb7727dfb4f wrote a readme file
38b14
是commit id
(版本号)
2 readme.txt
退回上一个版本
- Git必须知道当前版本,用
HEAD
表示当前版本,也就是最新的提交38b14
,上一个版本是HEAD^
,上上一个版本是HEAD^^
,往上几个版本,就在HEAD
后面加几个^
。
$ git reset --hard HEAD^
HEAD is now at a6a248b add distributed
readme.txt
当下内容
$ cat readme.txt
Git is a distributed version control system.
Git is free software.
使用命令git reset --hard commit_id
$ git reset --hard 38b14
HEAD is now at 38b14ee append GPL
3 git reflog
用来记录每次命令历史
退回到某一个版本,又想恢复到新的版本,但是找不到新版本的commit id
38b14ee (HEAD -> master) HEAD@{0}: reset: moving to 38b14
a6a248b HEAD@{1}: reset: moving to HEAD^
38b14ee (HEAD -> master) HEAD@{2}: reset: moving to 38b14
a6a248b HEAD@{3}: reset: moving to HEAD^
38b14ee (HEAD -> master) HEAD@{4}: commit: append GPL
a6a248b HEAD@{5}: commit: add distributed
48b9687 HEAD@{6}: commit (initial): wrote a readme file