工作区

就是 git init 的目录,就是工程目录。
工作区下包含着版本库 .git 文件夹。

暂存区

暂存区就存在于 .git 版本库文件夹内。
称为 stage,这并不是指某个目录的名称,而是一个逻辑概念。
一般存放在 .git 目录下的 index 文件(.git/index)中。

创建版本库的同时,会创建一个唯一的 master 分支。
git add 是往暂存区提交
git commit 是往 master分支提交

在实际开发中,这个作用很大,比如在编写一段时间的代码后,想要拉一下远程分支的代码,或者想回到之前的修改,但是又不想删掉这些修改,就可以用 stage 来暂存修改,暂存后,代码恢复未修改前的样子。

版本库

工作区有一个隐藏目录 .git,虽然这个目录在工作区的工程目录下,但是目录是管理git的。这个不算工作区,而是 Git 的版本库。
工作区中的文件的修改和 stage 暂存区中的修改都会被 git 监控到。
不同的区之前的修改是独立互不影响的。工作区中的修改是不会被 commit 的。只有暂存区的才会被 commit。

版本库