程序员手把手教你学git重点关注

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

2019-01-07  本文已影响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框架

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

上一篇下一篇

猜你喜欢

热点阅读