我们都知道初始化项目时,会生成一个.git的隐藏目录,那么这个目录究竟放了那些东西呢,又有什么作用呢?现在我们就来看看。
HEAD
HEAD指向的是当前工作所在的分支
$ cat HEAD
ref: refs/heads/tmp
config
保存本地仓库对应的配置信息,比如使用config命令设置的一些信息
$ cat config
[core]
repositoryformatversion =
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而内容里存放的文件信息,然后再查看文件的哈希值内容
就会发现是我们之前编写的文件。