上一次小结
git status //查看工作区,暂存区状态
git add [file name] //将工作区新建/修改添加到暂存区
git commit -m “File describe” [file name] //将暂存区内容提交到本地库
查看版本记录的四种方式
git log //查看版本记录(比较全的)
当版本记录太多时,空格向下翻页,b向上翻页,以End结尾,不能输命令时按下英文Q可退出。
git log --pretty=oneline //以一行的格式显示版本记录
git log --oneline //以更简洁的格式显示版本记录,只显示当前记录的后面的版本,哈希值也只显示一部分
HEAD是一个指针,他的后面是我们对文件的描述
git reflog //在oneline的基础上还增加了指针需要移动几步(HEAD@{1})才到我们需要的版本
历史记录的前进与后退的三种方式
方法一:基于索引值去操作(推荐)
git reset --hard [索引值]
如:git reset --hard a9fd7a8
注意,在git命令行中,选中就是复制,再右键粘贴(Paste)即可
方法二:使用HEAD^(只能后退,有几个异或符号就表示往后退几步)
git reset --hard HEAD^(往后退一步)
两个^符号就往后退两步
方法三:使用HEAD~n(只能后退,往后退几步n就是几)
例如:git reset --hard HEAD~2(后退两步)
reset命令三个参数的对比
–soft参数
仅仅在本地库移动HEAD指针
–mixed参数
在本地库移动HEAD指针,重置暂存区
–hard参数
在本地库移动HEAD指针,重置暂存区与工作区(找回文件就
是依靠这个)
永久删除文件后找回
首先创建一个文件,然后添加它到暂存区,再提交到本地库
删除这个文件
rm aaa.txt
再将删除的这个文件添加到暂存区,然后提交到本地库
那么这个文件就永久的被删除
再将文件找回那么移动指针去找版本库历史记录即可,因为提交的历史记录永远存在,而删除的记录也永远存在。
当前指针在被删除的版本库历史记录上:
将指针指到当时新建aaa.txt时提交文件的版本库历史记录上:
再打开aaa.txt文件时,就可以发现它已经被找回了
所以通过移动指针,我们可以通过我们的需要去切换我们的版本库
没有提交到本地库但被删除文件的找回
还是一样的,首先创建文件
然后添加它到暂存区,再提交到本地库
看看现在的版本记录
我们将文件删除
再使用 git reset --hard HEAD移动指针,找到创建,提交apple.txt版本的历史记录找回: