Git——简说.git目录【五】

我们都知道初始化项目时,会生成一个.git的隐藏目录,那么这个目录究竟放了那些东西呢,又有什么作用呢?现在我们就来看看。

HEAD

HEAD指向的是当前工作所在的分支

$ cat HEAD
ref: refs/heads/tmp

config

保存本地仓库对应的配置信息,比如使用config命令设置的一些信息

$ cat config
[core]
        repositoryformatversion = 0
        filemode = false
        bare = false
        logallrefupdates = true
        symlinks = false
        ignorecase = true
[remote "origin"]
        url = git@github.com:wangyang0210/bky-git.git
        fetch = +refs/heads/*:refs/remotes/origin/*

refs

在这之前我,我们要先知道一个命令,通过这个命令,我们可以具体的知道每个最终的内容是什么

git cat-file 命令 显示版本库对象的内容、类型及大小信息。
git cat-file -t b44dd71d62a5a8ed3 显示版本库对象的类型
git cat-file -s b44dd71d62a5a8ed3 显示版本库对象的大小
git cat-file -p b44dd71d62a5a8ed3 显示版本库对象的内容

heads存放的是分支信息,而分支信息中存放的是指向的commit

$ cat master

$ git cat-file -t f94d994a11871a

$ git cat-file -s f94d994a11871a

$ git cat-file -p f94d994a11871a

remotes是远程版本仓库的一些信息,同样的我们可以使用git cat-file来进行查看,同样的操作你还不尝试下。

tags是打的标签,tag里面的文件指向的是一个自身的哈希值,而这个哈希值包含一个对象最终指向commit

因为我这里没打标签就不演示了,其实方法和上面是一样的。

objects

 

里面同样存放的是一个哈希值,按着之前的顺序,我们先来看看类型,然后查看内容

首先说下类型吧,类型是tree而内容里存放的文件信息,然后再查看文件的哈希值内容

就会发现是我们之前编写的文件。

原文地址:https://www.cnblogs.com/wangyang0210/p/10349858.html