Loading...
墨滴

舍得

2021/10/12  阅读:53  主题:红绯

实战:探密.git目录(成功测试-博客输出)-20211013

image-20211013071058459
image-20211013071058459

目录

写在前面

本文,我将带你实战演示探密.git目录实验。

我的博客主旨:我希望每一个人拿着我的博客都可以做出实验现象,先把实验做出来,然后再结合理论知识更深层次去理解技术点,这样学习起来才有乐趣和动力。并且,我的博客内容步骤是很完整的,也分享源码和实验用到的软件,希望能和大家一起共同进步!

各位小伙伴在实际操作过程中如有什么疑问,可随时联系本人免费帮您解决问题:

  1. 个人微信二维码:x2675263825 (舍得), qq:2675263825。

    image-20211002091450217
    image-20211002091450217
  2. 个人博客地址:www.onlyonexl.cn

    image-20211002092057988
    image-20211002092057988
  3. 个人微信公众号:云原生架构师实战

    image-20211002141739664
    image-20211002141739664
  4. 个人csdn

    https://blog.csdn.net/weixin_39246554?spm=1010.2135.3001.5421

    image-20211002092344616
    image-20211002092344616

实验环境

win10
$ git version
git version 2.17.0.windows.1

当前实验环境:一个本地git仓库

.git:裸仓库 git最核心的目录

image-20211012070310543
image-20211012070310543

1、HEAD文件信息:指出当前所处的分支,是一个引用。

cd .git/
$ cat HEAD #查看HEAD文件信息
$ git branch -av #查看当前分支
$ git checkout master
cd ../
$ git checkout master #切换到master分支
$ cat .git/HEAD
$ git branch -av

通过切换分支操作来观察.git/HEAD文件的信息变化:

image-20211012070538345
image-20211012070538345

2、config文件信息:存放当前仓库的一些配置信息

image-20211012072320181
image-20211012072320181
  • 可以看出,之前配置签名的时候,其信息是被保存到.git/config里面去的:
git config --local user.name  "hg"
git config --local user.email  "2675263825@qq.com"
  • 这里进行一个小测试:通过命令行反复配置来观察config文件内容的变化=》符合预期效果!
$ cat config
$ git config --local user.name
$ git config --local user.name "xyy-iloveyou"
$ git config --local user.name
$ cat config
$ git config --local user.name "xyy"
$ git config --local user.name
$ cat config
image-20211012073309830
image-20211012073309830
image-20211012073344085
image-20211012073344085

3、refs目录信息

1、来到heads目录下

$ cat master
$ git cat-file -t f2b8f7e580b2bd #注意这个命令
$ git branch -av
image-20211012074216096
image-20211012074216096
image-20211012074406333
image-20211012074406333

2、来到tags目录下

$ cat js01
$ git cat-file -t cccf4ef2 #-t:类型
$ git cat-file -p cccf4ef2 #-p:内容
$ git cat-file -t f99906da3e
image-20211012075101586
image-20211012075101586

4、来看一个很重要的概念:object

image-20211012075645178
image-20211012075645178

我们进到e8目录下进行测试:

它是这样处理的,把这2个字符和里面的这一串凭拼接起来,我们看一下这个对象是什么东西?

$ git cat-file -t e87d0f44918e22fa948418c58a45fa8f078dc7a0

image-20211013065644373
image-20211013065644373

它是一棵树。

我们已经知道,目前git它有tree,commit这2种对象类型了。

我们再来看下这棵树的内容是什么?

$ git cat-file -p e87d0f44918e22fa948418c58a45fa8f078dc7a0

可以看到,它说这棵树里面有个文件叫做style.css。

image-20211013065628693
image-20211013065628693

这里又有个文件类型,它叫做blob(blob它是文件对象)

我们再来确定下这个blob对象它的类型和内容:=》符合预期效果,它的类型的确是blob,文件内容是style.css的内容

$ git cat-file -t b72e61c8b

$ git cat-file -p b72e61c8b

image-20211013065937395
image-20211013065937395

git最核心的对象也就这3类: commit tree blob(文件对象)

我们git有个很神奇的地方,只要任何文件的文件内容相同,那么在git眼里它就是唯一的一个blob

总结

​ 好了,关于探密.git目录实验就到这里了,感谢大家阅读,最后贴上我的美圆photo一张,祝大家生活快乐,每天都过的有意义哦,我们下期见!

image-20211004102128716
image-20211004102128716

舍得

2021/10/12  阅读:53  主题:红绯

作者介绍

舍得