Git学习笔记(二)—— Git目录、工作目录与索引

Git学习笔记(二)—— Git目录、工作目录与索引_第1张图片
图片发自App

什么是Git目录

Git目录一般就是指项目根目录下的.git目录,它是一个隐藏文件,所以如果在mac系统的终端iterm工具进入项目目录后一般是看不到的,不过直接输入cd .git就可以看到目录的信息。
那么Git目录是做什么用的呢?
每一个项目都只能有一个Git目录,它是为你的项目存储所有历史和元信息的目录,包括上文提到的所有对象(commitstreesblobstags),而这些对象指向不同的分支。通过指令cd .git查看目录的内容,即可看到所有的重要文件如下:

* HEAD  //表示这个git项目处在哪个分支里
* config  //项目的配置信息,输入`git config`相关命令将会改动它
* description  //项目的描述信息
* hooks  //系统默认钩子脚本目录
* index  //索引文件
* logs  //各个refs的历史信息
* objects  // 本地仓库的所有对象 (`commits`, `trees`, `blobs`, `tags`)
* refs  //项目里的每个分支指向了哪个`commit`
也许通过`cd .git`命令还会看到其他的文件或目录,比如我的项目中还有branches、tree、sourcetreeconfig等,也许你的项目中还有其他与我也不同的东西,不过目前这些不重要,先知道以上几个就好了。

Git目录与Git工作目录区别

Git的工作目录只是用来临时保存checkout过的用来编辑的文件的地方,可供编辑直到下次commit为止。
Git目录用来保存所有历史信息。

什么是Git索引

首先上图:

Git学习笔记(二)—— Git目录、工作目录与索引_第2张图片
areas.jpg

使用git的简单工作状态是这样的:你拥有一个git仓库(repository),此刻我们说的是本地仓库,而非远程的(remote)。把仓库(repository)中的内容 checkout出来,就得到了一个 工作目录(此图中橙色的working directory),在 工作目录里你可以编辑与修改你的文件。而在你的 工作目录仓库之间还有一个 暂存区(此图中的staging area),它就是Git索引(index)。有了它,如果你提交了了一个 commit或多个 commit仓库,那么你 commit的就是Git索引(index)中的内容,而非工作目录中的内容。

你可能感兴趣的:(Git学习笔记(二)—— Git目录、工作目录与索引)