Git学习笔记二(版本回退、工作区和暂存区、撤销修改、删除文件)

Git学习笔记二

版本回退

  • 先通过修改readme.txt再进行一次添加提交来复习学习笔记一中的知识。如图:
    这里写图片描述
  • 现在介绍git log命令,这是用来查看我们提交的历史记录,如图
    这里写图片描述
  • 如果觉得信息太多,可以使用git log --pretty=oneline来简化输出信息,使其更加清晰,如图
    这里写图片描述

  • 现在我们进行版本回退,首先HEAD指的是当前版本,HEAD^是上一版本,HEAD^^是上上版本,如果是n次前的版本,应当是HEAD~n,我们可以用git reset命令来完成版本回退,现在输入git reset --hard HEAD^,看看现在的readme.txt文档是否变成了上一次修改的,如图
    这里写图片描述

  • 现在我们已经学会了如何进行版本回退(除了用HEAD指针之外,也可以用序号(那串16进制数字)来检索),但是现在我们面临一个问题,如果我们进行了版本回退,但是当前的版本就会被覆盖掉,在log中也不能显示,可是如果我们想再回到那个版本该如何做呢?

  • 方法是有的,只要你能得到你想要的那个版本的commit id(16进制序号),就能够通过git reset命令回去。如果你当前窗口未关闭,那么你可以直接上翻,可能可以找到之前的commit id,如果窗口关闭了,也可键入git reflog来查看你的命令记录,从而找到commit id,如图
    这里写图片描述

工作区和暂存区

  • 工作区(Working Directory)就是你在电脑里能看到的目录,比如我们使用的learngit文件夹就是一个工作区。
  • 版本库(Repository)是指在工作区里面的隐藏目录.git,这个目录不属于工作区,而是Git的版本库。
  • Git的版本库里存了很多东西,其中最重要的就是称为stage的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD。如图
    这里写图片描述
  • 在学习笔记一中,我们将文件往Git版本库里添加的时候,是分两步执行的:
    • 第一步是用git add把文件添加进去,实际上就是把文件修改添加到暂存区。
    • 第二步是用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支。因为我们创建Git版本库时,Git自动为我们创建了唯一一个master分支,所以,现在git commit就是往master分支上提交更改。
    • 简单来说,就是add的文件全部放到暂存区,然后commit一次性提交暂存区的所有修改。
  • 由于Git是管理修改而不是管理文件,所以,每次修改,如果不add到暂存区,那就不会加入到commit中。

撤销修改

  • 现在学习一个新的命令git checkout -- file,可以将文件在工作区的修改全部撤销。
  • 比如git checkout -- readme.txt,这里有两种情况:
    • 一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态。
    • 一种是readme.txt已经添加到暂存区后,又作了修改,现在撤销修改就回到添加到暂存区后的状态。
    • 总之就是让这个文件回到最近一次git commitgit add的状态。
  • 这里的--很重要,如果丢失,那么就变成了另一种操作。
  • 我们可以用一个类似的操作也达到撤销暂存区修改的目的,git reset HEAD file,将暂存区清空。

删除文件

  • rm 可以将文件从工作区删除。
  • git rm命令是将文件从工作区和暂存区中删除,并且还要执行一次git commit命令才能够在版本库中删除。例如

    $ git rm test.txt 
    rm 'test.txt'
    $ git commit -m "remove test.txt"
    [master d17efd8] remove test.txt
    1 file changed, 1 deletion(-)
    delete mode 100644 test.txt

  • 倘若删错了,我们可以用git checkout -- file将版本库里的文件替换工作区的版本,无论工作区是修改还是删除,都可以一键还原。(只会还原到最新版本,不能保存删除之前短时间的修改。)
    本文是本人学习廖雪峰git教程过程中的学习记录,详细教程可以参见廖雪峰Git教程

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值