04.git的工作区和暂存区

参考,个人作为记录而已
廖雪峰git教程

工作区

文件夹就是工作区,工作区有一个隐藏目录.git,而是Git的版本库,版本库想到了commit id,就是命令git commit -m “add file”所产生的一个id号

Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD

Git的版本库重要的东西:stage暂存区+自动创建的第一个分支master

Vy7E5V.jpg

暂存区:stage

前面讲了我们把文件往Git版本库里添加的时候,是分两步执行的:

第一步是用git add把文件添加进去,实际上就是把文件修改添加到暂存区

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

工作区与暂存区

我们在工作区(git管理的目录,通过git init实施管理)add,commit,通过add可以将文件放进stage暂存区,通过commit可以将放进stage的东西放到当前分支

没有放进stage区的东西,commit后,不会放到当前分支的

注意上面的话!~比如第一次修改了,也add到stage区了,还没有commit,又修改了,这时候commit,流程如下:

操作:第一次修改->add->第二次修改->commit

第二次的修改不会提交到当前分支的,因为第二次的修改没有add到stage区。

其实commit提交后,用git diff HEAD -- readme.txt命令可以查看工作区和版本库里面最新版本的区别,readme.txt是工作区里面的,就是目录下的,HEAD 是当前分支

1
2
3
4
5
6
7
8
9
10
11
$ git diff HEAD -- readme.txt 
diff --git a/readme.txt b/readme.txt
index 76d770f..a9c5755 100644
--- a/readme.txt
+++ b/readme.txt
@@ -1,4 +1,4 @@
Git is a distributed version control system.
Git is free software distributed under the GPL.
Git has a mutable index called stage.
-Git tracks changes.
+Git tracks changes of files.

+Git tracks changes of files. 是工作区,-Git tracks changes.是版本库的

第二行有写diff –git a/readme.txt b/readme.txt,用–git就是版本库的?就是a,而b是工作区的