git使用记录四:.git分析
2024-09-01 16:37:28
git使用记录四: .git
查看.git 目录下的文件
soaeon@DESKTOP-FUJJTHR MINGW64 /f/gitstudy/.git (GIT_DIR!)
$ ls -al
total 19
drwxr-xr-x 1 soaeon 197121 0 5月 21 21:20 ./
drwxr-xr-x 1 soaeon 197121 0 5月 21 21:01 ../
-rw-r--r-- 1 soaeon 197121 15 5月 21 21:01 COMMIT_EDITMSG
-rw-r--r-- 1 soaeon 197121 130 5月 21 14:18 config
-rw-r--r-- 1 soaeon 197121 73 5月 21 14:18 description
-rw-r--r-- 1 soaeon 197121 175 5月 21 21:20 gitk.cache
-rw-r--r-- 1 soaeon 197121 23 5月 21 14:18 HEAD
drwxr-xr-x 1 soaeon 197121 0 5月 21 14:18 hooks/
-rw-r--r-- 1 soaeon 197121 217 5月 21 21:01 index
drwxr-xr-x 1 soaeon 197121 0 5月 21 14:18 info/
drwxr-xr-x 1 soaeon 197121 0 5月 21 14:35 logs/
drwxr-xr-x 1 soaeon 197121 0 5月 21 21:01 objects/
-rw-r--r-- 1 soaeon 197121 41 5月 21 20:52 ORIG_HEAD
drwxr-xr-x 1 soaeon 197121 0 5月 21 14:18 refs/
HEAD中记录了什么?
查看一下HEAD中的内容:
soaeon@DESKTOP-FUJJTHR MINGW64 /f/gitstudy/.git (GIT_DIR!)
$ cat HEAD
ref: refs/heads/master
refs到了 refs/heads/master 文件, 那么我们去找一下 master文件,看看到底是什么鬼, 走起……
soaeon@DESKTOP-FUJJTHR MINGW64 /f/gitstudy/.git (GIT_DIR!)
$ cd refs/heads/
soaeon@DESKTOP-FUJJTHR MINGW64 /f/gitstudy/.git/refs/heads (GIT_DIR!)
$ ls -al
total 1
drwxr-xr-x 1 soaeon 197121 0 5月 21 21:01 ./
drwxr-xr-x 1 soaeon 197121 0 5月 21 14:18 ../
-rw-r--r-- 1 soaeon 197121 41 5月 21 21:01 master
soaeon@DESKTOP-FUJJTHR MINGW64 /f/gitstudy/.git/refs/heads (GIT_DIR!)
$ git cat-file -t master
commit
soaeon@DESKTOP-FUJJTHR MINGW64 /f/gitstudy/.git/refs/heads (GIT_DIR!)
$ git cat-file -p master
tree b45764296505a9fa97245d0b0107b2a3b5f46447
parent 980e3beda020a9696626c671badc4f1612f0a1aa
author soaoen <soaeon@163.com> 1558443701 +0800
committer soaoen <soaeon@163.com> 1558443701 +0800
add index.html
从上面的记录中 我们看见 /refs/heads/master记录的是一个commit对象而已, 但是这个commit的内容记录了一次提及哎…… 内容如下
- tree
- parent :父节点
- author
- commiter
- log-info('add index.html')
走, 我们去看看最后的两次提交的历史记录
soaeon@DESKTOP-FUJJTHR MINGW64 /f/gitstudy/.git/refs/heads (GIT_DIR!)
$ git log -n 2
commit 32f575d33a6bcf8b834590718594e472e0ff9b4b (HEAD -> master)
Author: soaoen <soaeon@163.com>
Date: Tue May 21 21:01:41 2019 +0800
add index.html
commit 980e3beda020a9696626c671badc4f1612f0a1aa
Author: soaoen <soaeon@163.com>
Date: Tue May 21 21:01:04 2019 +0800
rename readme
哇, 到这里我们可以, 上面master 存放的parent指向了‘rename readme’这个log, 所以 refs/heads/master 执行了最后的一次提交的记录哦
objects 文件夹都存了啥?
切换到object路径下, 查看一下当前的路径吧
soaeon@DESKTOP-FUJJTHR MINGW64 /f/gitstudy/.git/objects (GIT_DIR!)
$ pwd
/f/gitstudy/.git/objects
列出objects 下所有的文件夹
soaeon@DESKTOP-FUJJTHR MINGW64 /f/gitstudy/.git/objects (GIT_DIR!)
$ ls -al
total 8
drwxr-xr-x 1 soaeon 197121 0 5月 21 21:01 ./
drwxr-xr-x 1 soaeon 197121 0 5月 21 21:20 ../
drwxr-xr-x 1 soaeon 197121 0 5月 21 21:01 23/
drwxr-xr-x 1 soaeon 197121 0 5月 21 21:01 32/
drwxr-xr-x 1 soaeon 197121 0 5月 21 14:35 33/
drwxr-xr-x 1 soaeon 197121 0 5月 21 21:01 98/
drwxr-xr-x 1 soaeon 197121 0 5月 21 21:01 b4/
drwxr-xr-x 1 soaeon 197121 0 5月 21 14:35 e6/
drwxr-xr-x 1 soaeon 197121 0 5月 21 14:35 e8/
drwxr-xr-x 1 soaeon 197121 0 5月 21 14:18 info/
drwxr-xr-x 1 soaeon 197121 0 5月 21 14:18 pack/
来吧, 我们查看一下e8下面存得啥玩意, 先切换到e8文件夹下面
soaeon@DESKTOP-FUJJTHR MINGW64 /f/gitstudy/.git/objects (GIT_DIR!)
$ cd e8/
soaeon@DESKTOP-FUJJTHR MINGW64 /f/gitstudy/.git/objects/e8 (GIT_DIR!)
$ ls -al
total 5
drwxr-xr-x 1 soaeon 197121 0 5月 21 14:35 ./
drwxr-xr-x 1 soaeon 197121 0 5月 21 21:01 ../
-r--r--r-- 1 soaeon 197121 51 5月 21 14:35 0ad49ace82167de62e498622d70377d913c79e
查看 0ad49 文件内容,使用git cat-file -p e8加上0ad49……, 如下
soaeon@DESKTOP-FUJJTHR MINGW64 /f/gitstudy/.git/objects/e8 (GIT_DIR!)
$ git cat-file -t e80ad49ace82167de62e498622d70377d913c79e
tree
soaeon@DESKTOP-FUJJTHR MINGW64 /f/gitstudy/.git/objects/e8 (GIT_DIR!)
$ git cat-file -p e80ad49ace82167de62e498622d70377d913c79e
100644 blob e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 readme
_ , 发现 这个的类型是tree, 但是里面存了一个blob 呀, 这都啥玩意?
这篇使用记录中我们发现存储的类型有commit, tree, blob 这三个都是啥, 又是啥关系呀, 下一篇使用记录,我们接着去探索,去发现咯
最新文章
- ios 弹出不同的键盘
- 原创:WeZRender:微信小程序Canvas增强组件
- redhat enterprixe 5.0 NFS服务配置与管理
- LCS最长公共子序列(最优线性时间O(n))
- Project Euler 98:Anagramic squares 重排平方数
- jquery自定义插件来实现分页的效果
- 遍历INI文件和删除指定域内容
- 新建表维护程序SM30
- Jquery浅克隆与深克隆
- selenium跳过webdriver检测并爬取淘宝我已购买的宝贝数据
- 网络编程-day4
- 部署在sae上的servlet程序出现is not a javax.servlet.Servlet 错误
- html字体加大标签与写法介绍
- SQL BETWEEN 操作符
- 洛谷P1373小a和uim大逃离题解
- Nginx+Tomcat反向代理利用certbot实现https
- [django]django model的查询和更新
- LeetCode - Max Area of Island
- ES6基础一
- 【Go命令教程】10. go fix 与 go tool fix
热门文章
- [SOL] #148. 数字格子问题
- Android应用程序开发中碰到的错误和获得的小经验
- Go语言_包、变量和函数
- C# WCF 服务引用与Web引用
- crack Tut.ReverseMe1.exe
- 【学习总结】GirlsInAI ML-diary day-21-初识 Numpy, Matplotlib, Seanborn [柱状图、折线图、箱图]
- vue,一路走来(15)--简单投票系统
- Envoy的线程模型[翻译]
- chrome插件研发手册
- MySQL优化系列之一