.git文件简介

  • git init的文件显示

在这里插入图片描述

  • git clone的文件显示

在这里插入图片描述

当git init的文件夹进行第一次commit操作之后两者的文件就会变得相同:

文件以及作用:

hooks

存放一些shell脚本,他的实现的功能是与响应的git动作相关,相关文档请看这里~

info

存放一些信息,其中保存了一份不希望在 .gitignore 文件中管理的忽略的全局可执行文件

# git ls-files --others --exclude-from=.git/info/exclude
# Lines that start with '#' are comments.
# For a project mostly in C, the following would be a good set of
# exclude patterns (uncomment them if you want to use them):
# *.[oa]
# *~
logs

记录了本地仓库和远程仓库的每一个分支的提交信息,即所有 commit 对象都会被记录在此,这个文件夹内容应该是我们查看最频繁的,如 git log

d9b76de8ba4e81b436123c889a3522eb6fc2b8ab	//上一次提交的hash值
b6ecc58539919d026c48c6c6a528fdbc248ac88c	//本次提交的hash值
jiaxinmxx		//用户名
<jiaxinmxx@163.com>			//邮箱
1594796913 +0800			//Linux时间,东八区
reset: moving to HEAD^2		//提交信息
objects

这里保存 git 对象,git 中的一些操作以及文件都会以 git 对象形式保存在这里,git 对象分为 BLOBtreecommit 三种类型。

refs

该文件夹保存了指向分支的提交对象也就是 commit 对象的指针,其中的 heads 文件夹存储了本地每一个分支最近一次提交的 id 值。每个分支一个文件;remotes 文件夹则记录你最后一次和远程仓库的通信,也就是说这里会记录最后一次每个分支推送到远端的值;tags 文件夹存储分支别名。

在这里插入图片描述

heads文件(本地现在有两个分支=>jiaxin和master分支)

在这里插入图片描述

COMMIT_EDITMSG

记录了最后一次提交时的注释信息

config

这里存储项目的一些配置信息。

[core]
	repositoryformatversion = 0
	filemode = false
	bare = false
	logallrefupdates = true
	symlinks = false
	ignorecase = true
[remote "origin"]
	url = yourUrl
	fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
	remote = origin
	merge = refs/heads/master
[gui]
	wmstate = normal
	geometry = 841x483+715+252 189 218
description

仅供 GitWeb 程序使用

FETCH_HEAD

某个分支在远程仓库的最新状态

b6ecc58539919d026c48c6c6a528fdbc248ac88c		
branch 'master' of https://github.com/jiaxin-MXX/gittest
HEAD

该文件指明了本地的分支结果,如本地分支是 master,那么 HEAD 就指向 master,分支在 refs 中就会表示成refs:refs/heads/master

ref: refs/heads/jiaxin
index

该文件 stage 暂存区信息,也就是 add 之后保存到的区域,内容包括它指向的文件的时间戳,文件名,hash值等

packed-refs

clone仓库时所有的引用

# pack-refs with: peeled fully-peeled sorted 
b6ecc58539919d026c48c6c6a528fdbc248ac88c refs/remotes/origin/master
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐