笔者的test.md文件,第一版文件只有一个格子里的内容,第二版没有上传,第三版加了第二个格子和第三个格子里的内容(版本如下图,按照时间先后命名)。第一版和第三版分别都在修改后用$ git add test.md命令传上github。第二版不用命令不提交。
第一版
第二版
第三版
查看文件所有版本
版本控制系统命令查看文件的历史记录,在Git中的git log命令查看,显示从最近到最远的提交日志(没上传的第二版就看不到)
$ git log
commit 6a9e57ac7f840f5674d641d09db914e117afaad6 (HEAD -> master)
Author: .........(此处显示github账户和邮箱)
Date: Sun Jan 24 20:26:58 2021 +0800
the third
commit cf0cf78038378cc124e8b5ff1ed4da28a0c1445f
Author: .........(此处显示github账户和邮箱)
Date: Sun Jan 24 16:03:44 2021 +0800
my first try
可以看到这里只有第一版和第三版的信息,不提交到git add的版本是完全不会被自动提交的,所以写完代码要记得更新版本!
版本回退—变为历史
第一步:知道当前的版本(最新的版本)是什么版本。Git中,用HEAD表示当前版本,也就是最新的提交**(HEAD -> master)**
第二部:输入命令回退到上一个版本,上一个版本就是HEAD^ ,上上一个版本就是HEAD^ ^ ,当然往上100个版本写成HEAD~100
$ git reset --head HEAD^
然后就弹出如下内容,显示完成回退
HEAD is now at cf0cf78 my first try
版本回退——“追悔可及”
现在在我的github里的test.md版本是第一修改的,但是我又想让它再一次回到我刚才进版本回退操作前的内容。办法如下:
只要上面的命令行窗口还没有被关掉情况下,找版本号来指定回退
如第三版的版本号是6a9e57ac7f840f5674d641d09db914e117afaad6,那就用如下的命令来进行
$ git reset --hard 6a9e
返回信息:HEAD is now at 6a9e57a the third表示成功回退版本
查本次git bash操作过程
git reflog用来记录本次git bash每一次命令:
$ fit reflog
得到本次打开git bash的结果
6a9e57a (HEAD -> master) HEAD@{0}: reset: moving to 6a9e
cf0cf78 HEAD@{1}: reset: moving to HEAD^
6a9e57a (HEAD -> master) HEAD@{2}: commit: the third
cf0cf78 HEAD@{3}: commit (initial): my first try