zoukankan      html  css  js  c++  java
  • git使用记录四:.git分析

    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 这三个都是啥, 又是啥关系呀, 下一篇使用记录,我们接着去探索,去发现咯

  • 相关阅读:
    免费申请域名
    分享学习linux网站
    二分法
    node 解决存储xss风险报告
    cf987f AND Graph
    loj2587 「APIO2018」铁人两项
    luogu3830 [SHOI2012]随机树
    luogu3343 [ZJOI2015]地震后的幻想乡
    bzoj2560 串珠子
    luogu3317 [SDOI2014]重建
  • 原文地址:https://www.cnblogs.com/soaeon/p/10902952.html
Copyright © 2011-2022 走看看