一、历史记录查看 1、查看提交的历史记录:git log,展示的信息比较全面 2、使一次记录的提交日志展示在一行:git log --pretty=oneline 或者:git log --oneline,只能显示当前指针所在版本及其之前的版本记录 或者:git reflog,这里展示的每次提交时的指针位置,对于我们的版本回退很有帮助,其中的数字表示指针需要移动几次会回到指定版本 二、版本重置(三种方式) 1、基于索引值操作[推荐]:可前进和后退 命令:git reset --hard 索引值(reflog中的索引值即可) 2、使用^符号:只能后退,几个代表后退几步,移动的是当前指针HEAD的位置 3、使用~符号:只能后退,后退的步数可以指定,比使用^更便捷 三、reset 命令的三个参数对比 除了上面的–hard之外,git还提供了–soft和–mixed两个参数,这三个参数的对比如下: --soft:仅仅在本地库移动 HEAD 指针,相当于只改变本地库的内容,不改变暂存区和工作区的内容,如果使用–soft后退,则相当于使用git add添加或修改了新的内容至暂存区,但是还没有使用git commit提交至本地库,因为本地库的版本后退相遇对暂存区就是暂存区的前进 --mixed:在本地库移动 HEAD 指针并且重置暂存区,相当于本地库和暂存区的版本同时改变 --hard:在本地库移动 HEAD 指针,同时会重置暂存区和工作区,使暂存区和工作区的内容和本地库中指针指定的版本一致。此时相当于本地库和暂存区和工作区都做了版本调整,也就是说–hard操作会将暂存区和工作区刷新为本地库指针指向的位置
四、删除文件找回 1、新建一个文件并提交至git本地库 能找回的文件必须是被git管理的文件 2、将本地文件删除 3、把文件删除的操作提交至本地库 4、查看历史操作记录 5、删除文件的找回,实际上就是将版本后退至文件创建的提交位置 原理就是我们对本地库的任何操作都会被记录下来形成历史记录,这就是为什么我们可以做版本的前进和后退。同样本地文件的删除提交至本地库之后也会形成相应的记录,我们可以恢复至删除之前的版本,这样就相当于文件还没有被删除,类似于时空穿梭的场景。
若文件的删除只是提交到暂存区,并未提交到本地库想恢复文件,其操作和将文件删除提交至本地库是一样的: 这说明reset命令的–hard操作会将暂存区和工作区刷新为本地库指针指向的某个历史位置,因此文件删除能够恢复的前提是文件之前曾被提交至本地库(这才会产生文件存在的记录),也就是说文件是被git管理的。
五、比较文件差异 使用git diff命令,将工作区的文件和暂存区或者本地库的文件进行比较 1、工作区和暂存区的文件比较:不带文件名比较所有文件 比较具体的某个文件:加上具体的文件名称 2、工作区和本地库比较 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20181126160241422.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3J1YnVsYWk=,size_16,color_FFFFFF,t_70)
Tip:对于Git只有将操作提交至本地库才会产生版本记录,在此之前是没有版本记录的。
|