1. git log
版本控制系统肯定有某个命令可以告诉我们历史记录,在Git中,我们用git log命令查看
git log命令显示从最近到最远的提交日志,
你看到的一大串类似3628164...882e1e0的是commit id(版本号)
Git的commit id不是1,2,3……递增的数字,而是一个SHA1计算出来的一个非常大的数字,用十六进制表示,
2. git reset –hard HEAD^
现在我们启动时光穿梭机,准备把readme.txt回退到上一个版本
Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,也就是最新的提交3628164...882e1e0(注意我的提交ID和你的肯定不一样),
上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100。
找到那个append GPL的commit id是3628164...,于是就可以指定回到未来的某个版本:
git reset --hard 3628164
3. cat readme.txt
查看文件内容
现在,你回退到了某个版本,关掉了电脑,第二天早上就后悔了,想恢复到新版本怎么办?找不到新版本的commit id怎么办?
Git提供了一个命令git reflog用来记录你的每一次命令
4. git reflog
HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset --hard commit_id
穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本
要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本