git入门--版本回退
前面已经学会使用git将文件提交到本地仓库和远程仓库,那么,如何在本地实现版本回退呢?
首先,我们在将上次讲到的文档进行修改,并反复提交。
第一次,修改内容为hellword。
过程如下
第一次修改提交第二次,修改内容为hellogit。在提交之前,我们使用以下语句查看本地仓库当前状态
第二次修改后未提交状态 第二次修改提交$ git status
在提交完成后,在次查看本地仓储当前状态。
第二次提交完成后状态同时,在修改提交时我们可以使用一下语句来查看文件修改的不同
$ git diff
,以上内容是我们重复上次内容,也是为下面的版本回退建立基础。
一. 查看本地仓储commit提交状态
本地仓储提交记录$ git log
注:你看到的一大串类似393c072....3f20b的是commit id(版本号),Git的commit id不是1,2,3……递增的数字,而是一个SHA1计算出来的一个非常大的数字,用十六进制表示,而且你看到的commit id和我的肯定不一样,以你自己的为准。为什么commit id需要用这么一大串数字表示呢?因为Git是分布式的版本控制系统,后面我们还要研究多人在同一个版本库里工作,如果大家都用1,2,3……作为版本号,那肯定就冲突了。
二.版本回退
首先,Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,也就是最新的提交393c072....3f20b(注意我的提交ID和你的肯定不一样),上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100。
回退到第一次修改$ git reset - - hard HEAD^
我们查看aa.txt是否实现回退
回退成功三. 如果有时候回退错误怎么办?
$ git reflog
使用上述语句可一查看你的每一次命令
查找成功在我们找到相应的git id之后,使用
回退到第二次修改成功$ git reset --hard id
查看aa.txt
成功