• Git学习笔记03-工作区和暂存区


    Git和其他版本控制工具不同的地方就是有暂存区的概念

    工作区(Working Directory)

    就是在电脑界面上能够看到的目录

    版本库(Repository)

    工作区下面有个一个.git文件夹,也就是上一篇文章git init之后生成的文件夹。这个就是版本库。Git的版本库里存了很多东西,其中最重要的称为stage的暂存区,还有GIt为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD。

    将文件往GIt版本库里添加分为两步执行:

    第一步是用git add将文件添加,实际上就是把文件从工作区添加到暂存区

    第二步是用git commit提交更改,实际上就是把文件从暂存区的所有内存提交到当前分支

    简单的理解就是把所有修改先放到暂存区上,然后一次性提交暂存区的所有修改。

    现在来实验下看看,使用Git Bash需要先cd到版本库所在路径

    git status查看工作区状态

    git diff对比工作区和暂存区的不同

    git diff --cached 对比暂存区和分支的不同

    可以git diff 具体文件名,对比某个具体文件,上面是对比整个。

    跟着上一文章,创建完版本库后,添加文件到版本库后不做任何操作,使用git status,这时提示工作区是干净的。

    使用git diff和git diff --cached应该也都是没有提示不同的

    在工作区下新增一个文件,就叫lesson.txt吧,写不写东西随意,如果要写内容请不要用windwos自带的记事本打开。请用别的文本编辑器

    提示lesson.txt状态是untracked。因为还没有被添加过。使用git diff还是没有提示。我以为会提示啥的。貌似对比的是只对比已经add的文件

    使用git add将leeson.txt提交到暂存区,然后在git status看下状态

    提示有修改还没有提交到分支,再使用git diff,因为刚刚add所以肯定没有不同,所以没提示正确。

    使用giit diff --cached看下暂存区和分支的对比

    提示有一个新增的file

    往lesson.txt里面新增或者修改内容,然后再git status一下

    会有两个记录,第一个绿色的是提示我们,上次添加到暂存区的修改,还没有提交到版本库。第二个红色的是提示我们,有修改的内容,还有没有添加到暂存区。

    使用git diff看下,可以提示的不同,显示的格式是Unix通用的diff格式

    第一行diff -get a/lesson.txt b/lesson.txt   表示为git格式的diff,进行比较的是a版本(变动前)的文件和b版本(变动后)的文件

    第二行表示两个版本git哈希值(index区域的ff3de11对象,bcd74af这个是工作区的对象,最后六位数是对象的模式)

    第三第四行 ---表示变更前的版本  +++表示变更后的版本

    之后的行都是diff格式展示的内容

    现在git commit一下,把暂存区的内容提交到分支,备注一下新增lesson.txt文件。

    使用git diff --cached对比一下暂存区和分支,应该不会提示不同。

    最后git add一下lesson.txt,把修改后的添加到暂存去,然后git diff对比下。然后git commit。

  • 相关阅读:
    Spring IoC容器初的初始化过程
    IoC容器初始化过程
    花了一个星期,我终于把RPC框架整明白了!
    RPC简介及框架选择
    ORM框架的前世今生
    什么是索引?Mysql目前主要的几种索引类型
    面试官:谈谈你对Mysql的MVCC的理解?
    sql server 获取数据字段(表的字段和类型信息)
    YAML
    Spring Boot 整合 Mybatis 实现 Druid 多数据源详解
  • 原文地址:https://www.cnblogs.com/myal/p/9371240.html
Copyright © 2020-2023  润新知