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

图片发自简书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索引

首先上图:

areas.jpg

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Git是目前最流行的版本管理系统,也是最先进的分布式版本控制系统(distributed version cont...
    pro648阅读 6,047评论 1 17
  • 中午给他打电话,我说,好烦啊,事情好多,工作怎么做都做不完。 他说,谁事儿不多啊。 大概一年前,那时我还是个学生,...
    自我管理讲师Jun阅读 528评论 0 1
  • 这个无所事事的下午,我躺在美容院的床上,舒舒服服的刷着屏,顺带看了Angie技能特训营专栏的许多文章。看过后...
    Doris66666阅读 250评论 0 0
  • 城市是个酒馆 我们都是其中的酒鬼 清醒的时候 嬉皮笑脸迎接人生的难 疲倦的时候 驾轻就熟把自己丢进酒杯里 遇事先敬...
    哀慕熙荣阅读 262评论 0 1
  • 照着rails tutorial学了两周,终于算是把webapp实现了。试着总结一下。 前端知识严重匮乏(HTML...
    kamionayuki阅读 508评论 2 2

友情链接更多精彩内容