美文网首页程序员手把手教你学git重点关注
有关Git的那些事儿(五)—-框架结构

有关Git的那些事儿(五)—-框架结构

作者: 栗子西西 | 来源:发表于2019-01-07 23:21 被阅读24次

    要想彻底了解一个东西,首先需要了解它的整体框架结构。Git也是如此。这一小节,我们来看看构成它的骨架。

    1. 工作区(Working Directory)
      指平常说的工作目录,例如我之前创建的xxlgit就是一个工作区。
    2. 版本库(Repository)
      工作区中有一个隐藏目录.git,之前小节中稍微提到过,它就是Git的版本库。
    3. 版本库中可以存放各种各样的东西,其中最重要的概念有缓存区(index或者stage)、分支master、指向master的指针HEAD
    工作区

    下面,我们将之前说过的添加文件到Git版本库的两个步骤重新复习一遍,并配以图片形式加以理解。

    我们将love.txt中的内容修改如下:

    I love you so much as the mouse like rice.
    Do you know?
    Every day
    Hey,Julie.
    

    在工作区新建一个文本文件air.txt(内容随意)。

    git status,查看状态:

    On branch master
    Changes not staged for commit:
      (use “git add <file>…” to update what will be committed)
      (use “git checkout — <file>…” to discard changes in working directory)
    
        modified:   love.txt
    
    Untracked files:
      (use “git add <file>…” to include in what will be committed)
    
        air.txt
    
    no changes added to commit (use “git add” and/or “git commit -a”)
    

    从上面可以看出,love.txt被修改了,air.txt的状态是untracked,说明它没有被添加到版本库中。

    使用命令git addlove.txtair.txt都添加后,使用git status命令查看一下此前的状态。

    On branch master
    Changes to be committed:
      (use “git reset HEAD <file>…” to unstage)
    
        new file:   air.txt
        modified:   love.txt
    

    现在,缓存区的状态变成了下面这样。


    缓存区

    实际上,git add将要提交的修改放到了缓存区(stage),之后用git commit可以一次性将在缓存区的所有修改都提交到分支master。

    git commit -m “new file”
    

    命令行输出:

    [master 6c2f0aa] new file
     2 files changed, 3 insertions(+), 1 deletion(-)
     create mode 100644 air.txt
    

    此时使用git status,发现工作区是干净的。

    On branch master
    nothing to commit, working tree clean
    

    现在的版本库如下所示。


    总结框图如下所示。


    git框架

    欲听后事如何,且听下回分解~

    相关文章

      网友评论

        本文标题:有关Git的那些事儿(五)—-框架结构

        本文链接:https://www.haomeiwen.com/subject/ybrmrqtx.html