背景:
我在工作区新建了一个日记.md文件,每次修改并提交了三次,每次都增加一句话,如下图:
如果我想看看我的三次提交记录该怎么办呢?
使用git log,查看提交记录
从上到下依次显示由新到旧的提交记录,
红框内的一长串数字英文字母是commit的ID号码;
红框内的“舍不得买”是提交信息;
ctrl + c
可以退出这个历史记录区,回到命令行区如果感觉信息太多,想看缩略版,那就加上
--pretty=oneline
看,只剩下ID号和提交信息了,简洁了很多:
我们每提交一次,git就会记录一次,这就好比我们玩游戏时的存档。下图是Git GUI 里面的的记录历史,和命令行git log
的记录其实是一样的。
要开始版本退回了
现在我们所处的版本是舍不得买
,也就是GUI中的黄点
现在想退回到前一个版本键盘很贵
,应该怎么做呢?
在Git中,HEAD
代表当前的版本的ID号,HEAD^
代表当前版本的上一个版本,当前版本之前的第N个版本就是 HEAD~N
。我们可以使用git reset
命令回退版本。
git reset --hard HEAD^
现在当前版本号变成了
键盘很贵
,到底变了么?我们来验证一下,打开日记.md看看内容不就知道了么。
很神奇!!!!我们退了回去,文件内容变成了上一个版本的内容。
git log
我们再看看提交日志吧。最新的
commit
也变成了键盘很贵
GUI上的
舍不得买
也消失了,键盘很贵
左边的小点变成了黄色,变成了最新的存档。现在又有一个问题,我后悔了,我想还原舍不得买
怎么办?这个也简单,只要我们没有关闭窗口,再回去找到舍不得买
的ID,再git reset
就OK了,注意ID不用全部复制,前七位就行。
但是如果,我是关了电脑睡了一觉才后悔不想改了呢,要怎么找到舍不得买
的ID?
当然有办法,使用git reflog
总结
1.HEAD
是当前的版本ID,使用git reset --hard 版本ID
就可以回到对应的版本;
2.git log
可以查看提交日志;
3.git reflog
可以查看已经不存在的版本ID;