-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
2 changed files
with
40 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,7 @@ | ||
# 从宏观理解Git | ||
|
||
提前说明:本章内容主要是一些理论的科普。尽管笔者深知理论是十分枯燥且难以接受的,但是读者仍然需要一些前置知识来理解一些Git世界中“人尽皆知”的概念。 | ||
|
||
事实上,大部分概念读者只需要眼熟即可,在后续章节中笔者会列举一些例子来帮助读者理解这些概念。 | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,37 @@ | ||
# 工作区、暂存区与版本库 | ||
|
||
本节中,笔者会为读者简单介绍一下Git中最基本的概念:仓库、**版本库**、**工作区**以及**暂存区**,并且力求让读者有一个初步的理解。 | ||
|
||
## 一些简单的概念 | ||
|
||
Git是一个**分布式**版本管理系统,所谓分布式是指在使用同一**仓库**的每一台电脑中都有一个完整的**版本库**。 | ||
|
||
* 上面提到的仓库,是Git管理文件的一个单位;换句话说,**Git以一个仓库为单位进行版本管理**。实际上,一个仓库就是一个文件夹,在这个文件夹下的所有文件都被Git所管理(当然有一些例外情况,不过现在不用理会)。 | ||
|
||
* 上面提到的版本库,顾名思义就是记录了Git仓库中的文件的版本信息的地方。你对文件所做的一切(新建文件、修改文件、删除文件)都会被记录在版本库中。实际上,**版本库也是一个文件夹**,而且是一个固定在仓库目录下的名为`.git`的文件夹。你可能看不到它,因为它往往是一个隐藏文件夹,需要在你使用的操作系统中做出对应的特殊处理才能看到。 | ||
|
||
仓库中除了版本库(`.git`文件夹)之外,其余的文件和文件夹都属于工作区,Git会记录工作区中所有文件的变化。 | ||
|
||
当你修改工作区中的文件时,Git会把你对文件的修改作为**差异**检测出来,但是并不做任何操作,你需要通过使用指令来将修改后的差异保存到暂存区,进而提交保存进版本库中。 | ||
|
||
## 对应概念与指令 | ||
|
||
上述过程其实涉及到一些Git指令的操作,我们来将一些概念和指令做一个简单的对应: | ||
|
||
> 如果读者知道笔者接下来在说些什么,那么大可以自己在命令行中简单练手试一下,不知道笔者在讲什么也没关系,本教程的重点并不在此。 | ||
首先,要想将一个文件夹中的文件纳入版本管理,你需要建立一个Git版本库,而建立版本库的方法很简单:在仓库目录下执行指令`git init`即可初始化一个版本库; | ||
|
||
现在你拥有了一个仓库(整个文件夹)、一个版本库(文件夹中的`.git`文件夹以及其中的内容)和一个工作区(文件夹中除了`.git`文件夹以外的一切),你可以尝试修改工作区中的文件,git会记录这些差异。记得吗?你需要将这些差异添加到暂存区,然后提交保存进版本库中,那么怎么做呢: | ||
|
||
* 你可以使用`git add`指令来将文件中的差异添加到暂存区中 | ||
|
||
* 之后你可以使用`git commit`指令来将已经在暂存区中的差异提交到版本库中 | ||
|
||
完成了上述步骤之后你就完成了对一次文件更改的版本管理。 | ||
|
||
> PS:对于上述内容,读者仅需对整个版本的管理流程有一个大致的理解即可,在后续的章节中,笔者会通过场景案例帮助读者对版本管理中的流程和功能有一个更加深刻的认知。 | ||
|
||
|
||
|