上篇博客已经讲解了如何提交修改的文件到git版本库,现在,再练习一次,修改README.md文件如下:
提交:
现在,我们回顾一下README.md文件一共有几个版本被提交到Git仓库里了:
版本一:
版本二:
版本三:
在实际项目中,每天都会修改,添加一些东西,提交到版本库中,所以每天都会有好几个版本。版本控制系统肯定有某个命令可以告诉我们历史记录,在Git中,我们用git log命令查看:
git log命令显示从最近到最远的提交日志,我们可以看到3次提交,最近的一次是add Git is very nice,上一次是add good word,最早的一次是wrote a readme file。
假如我们想要回到上个版本,把README.md回退到上一个版本,也就是“add good word”的那个版本,怎么做呢?
首先,Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,也就是最新的提交b410c561a196c18bcb254f83c26551001e667dda,上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100。
现在,我们要把当前版本回退到上一个版本“add good word”,就可以使用git reset命令:
–hard参数有啥意义?
Git在内部有个指向当前版本的HEAD指针
看看README.md的内容是不是版本add good word:
还可以继续回退到上一个版本wrote a readme file,不过且慢,然我们用git log再看看现在版本库的状态:
最新的那个版本add Git is very nice已经看不到了!如果想回到原来最新版本,怎么办?
办法其实还是有的,只要上面的命令行窗口还没有被关掉,你可以找到那个add Git is very nice版本的commit id是b410c561a196c18bcb254f83c26551001e667dda,于是就可以指定回到未来的某个版本:
查看下:
现在,你回退到了某个版本,不小心关掉了git bash命令窗,想恢复到新版本怎么办?找不到新版本的commit id怎么办?
在Git中,如果要回到之前版本就必须找到commit id。Git提供了一个命令git reflog用来记录你的每一次命令:
##总结一下:
HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset –hard commit_id。
穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。
要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。