之前已经学会了修改文件,然后把修改提交到Git版本库,现在,再练习一次,修改readme.txt文件如下:
Git is a distributed version control system.
Git is free software distributed under the GPL.```
- 提交
git add readme.pages
git commit -m "change readme.pages file"```

- 到现在为止,我们已经向git中提交了很多内容了,现在我们来看一下历史记录
git log```

- 如果嫌输出信息太多,看得眼花缭乱的,可以试试加上--pretty=oneline
参数:
git log --pretty=oneline```

- 一大串类似3628164...882e1e0的是commit id(版本号),和SVN不一样,Git的commit id不是1,2,3……递增的数字,而是一个SHA1计算出来的一个非常大的数字,用十六进制表示,而且你看到的commit id和我的肯定不一样,以你自己的为准。为什么commit id
需要用这么一大串数字表示呢?因为Git是分布式的版本控制系统,后面我们还要研究多人在同一个版本库里工作,如果大家都用1,2,3……作为版本号,那肯定就冲突了。
版本回退
-
首先,Git必须知道当前版本是哪个版本,在Git中,用HEAD
表示当前版本,也就是最新的提交3628164...882e1e0
(注意我的提交ID和你的肯定不一样),上一个版本就是HEAD^
,上上一个版本就是HEAD^^
,当然往上100个版本写100个^
比较容易数不过来,所以写成HEAD~100
。 -
现在我们回退到上一个版本
git reset --hard HEAD^```
回退成功!

- 再来查看版本库的状态
git log```
- 只要有版本号 我们可以随便回退

- Git的版本回退速度非常快,因为Git在内部有个指向当前版本的HEAD
指针,当你回退版本的时候,Git仅仅是把HEAD指针指向回退的版本
恢复到新版本
- 你会退到之前的版本,但是你后悔了,想要恢复到之前的版本怎么办?Git中总有后悔药让你吃的。
首先Git保存你的每一次命令:
git reflog```

- 这里记录了所有的版本号,我们直接使用命令回退到最新的版本号即可
git reset --hard cf7f320```

总结一下:
HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset --hard commit_id。
穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。
要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。
网友评论