1.git目录解析

廉价感情. 提交于 2019-11-30 14:27:47
为了了解git。了解git的原理,先从.git的文件

1.git的目录

  • hook
  • info
  • logs
  • objects
  • refs
  • COMMIT_EDITMSG
  • config
  • description
  • gitk.cache
  • HEAD
  • index
  • packed-refs
12
cd .git  //进入.git文件ls -al   //查列表

文件夹解析

存储指向branch的最近一次commit对象的指针

hook:存放一些shell脚本
info:存放仓库的一些信息
logs:保存所有更新的引用记录
==refs:==
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
第一步:cd refsls -al //可以看到列表heads,remotes和tagstotal 4drwxr-xr-x 1 Hades 197121 0 2月   5 14:36 ./drwxr-xr-x 1 Hades 197121 0 2月   5 23:21 ../drwxr-xr-x 1 Hades 197121 0 2月   5 14:36 heads/drwxr-xr-x 1 Hades 197121 0 2月   5 22:57 remotes/drwxr-xr-x 1 Hades 197121 0 2月   5 23:05 tags/第二步:查看headcd refscd headscat master7035757e6b6884467aceb0700fcbb4b085c069f2git cat-file -t 7035757e6b68 //查看树类型commit第三步:查看tags 用于大版本的标记如V1.4cd refscd tagscat master7035757e6b6884467aceb0700fcbb4b085c069f2git cat-file -t 3f8a960a28301 //查看树类型tag第四步:查看remotes //存储最近一次push到远程仓库的commit对象的哈希值ls -altotal 0drwxr-xr-x 1 Hades 197121 0 2月   5 22:57 ./drwxr-xr-x 1 Hades 197121 0 2月   5 14:36 ../drwxr-xr-x 1 Hades 197121 0 2月   5 22:57 origin/cd orginls -altotal 4drwxr-xr-x 1 Hades 197121  0 2月   5 22:57 ./drwxr-xr-x 1 Hades 197121  0 2月   5 22:57 ../-rw-r--r-- 1 Hades 197121 41 2月   5 22:57 cssdrwxr-xr-x 1 Hades 197121  0 2月   5 22:57 feature/-rw-r--r-- 1 Hades 197121 32 2月   5 22:57 HEAD-rw-r--r-- 1 Hades 197121 41 2月   5 22:57 master-rw-r--r-- 1 Hades 197121 41 2月   5 22:57 temp
==objects:==
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
cd objectsls -altotal 12drwxr-xr-x 1 Hades 197121 0 2月   5 23:05 ./drwxr-xr-x 1 Hades 197121 0 2月   5 23:21 ../drwxr-xr-x 1 Hades 197121 0 2月   5 14:36 00/drwxr-xr-x 1 Hades 197121 0 2月   5 14:36 0d/drwxr-xr-x 1 Hades 197121 0 2月   5 14:36 10/drwxr-xr-x 1 Hades 197121 0 2月   5 14:36 15/drwxr-xr-x 1 Hades 197121 0 2月   5 14:36 1a/drwxr-xr-x 1 Hades 197121 0 2月   5 14:36 1b/drwxr-xr-x 1 Hades 197121 0 2月   5 14:36 1e/drwxr-xr-x 1 Hades 197121 0 2月   5 14:36 21/drwxr-xr-x 1 Hades 197121 0 2月   5 14:36 info/drwxr-xr-x 1 Hades 197121 0 2月   5 14:36 pack/cd 1a   //选一个文件ls -altotal 9drwxr-xr-x 1 Hades 197121   0 2月   5 14:36 ./drwxr-xr-x 1 Hades 197121   0 2月   5 23:05 ../-r--r--r-- 1 Hades 197121 240 2月   5 14:36 87007f9df391fd1eb6fb7fd529db1789cb4cafgit cat-file -p 1a87007f9df391fd1eb //将文件名和哈希值组合treegit cat-file -t 1a87007f9df391fd1eb //查看树内容100644 blob f189165b39f0b487fe0b1655cd6c31e8836292c4    0.txt100644 blob a420cabf924b6247fa6c58759715322cd0e5d1f2    LICENSE100644 blob 88089f54ee37e47694fb0b40d70df02ada0dc403    image.jpg100644 blob c1c4091a2ad1d84f1de28256398a129a23ba2a4a    index.html040000 tree d171c34fa5b687efe88587d4aab6784ad16a5bc5    js100644 blob 1b215135940281fa5e952530aa0afadb93cc2d53    readme.md040000 tree 4a27d52dbbf6a83ec9b7828faa100d66149cbd3d    stylesgit cat-file -t c1c4091a2ad1d84f1d  //indexblobgit cat-file -p c1c4091a2ad1d84f1d  //可以在进一步的查看内容<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>stash修改</title></head><body><img src="image.jpg"><div>参考项目信</div><img src="image.jpg"><div>参考项目信</div></body></html>

文件解析

COMMIT_EDITMSG:最新提交的一次Commit Message,git系统不会用到,给用户一个参考
description:仓库的描述信息,主要给gitweb等git托管系统使用
index:暂存区(stage),一个二进制文件
FETCH_HEAD:是一个版本链接,指向着目前已经从远程仓库取下来的分支的末端版本
ORIG_HEAD:HEAD指针的前一个状态

映射到ref引用,当前正在使用的分支

12
cat HEAD //查看HEAD哈希值7035757e6b6884467aceb0700fcbb4b085c069f2

当切换分支或提交新的commit,哈希值会发生变化

==config:==

git仓库配置文件

1
cat .git/config //查看git的配置

packed-refs:当ref文件过多时会打包到packed-refs

原文:大专栏  1.git目录解析


标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!