zoukankan      html  css  js  c++  java
  • Git对象类型(Object types)

    一. 基本对象类型

    Git中有四种基本对象类型,组成了Git更高级的数据结构:

    • blobs
      每个blob代表一个(版本的)文件,blob只包含文件的数据,而忽略文件的其他元数据,如名字、路径、格式等。
    • trees
      每个tree代表了一个目录的信息,包含了此目录下的blobs,子目录(对应于子trees),文件名、路径等元数据。因此,对于有子目录的目录,git相当于存储了嵌套的trees。
    • commits
      每个commit记录了提交一个更新的所有元数据,如指向的tree,父commit,作者、提交者、提交日期、提交日志等。每次提交都指向一个tree对象,记录了当次提交时的目录信息。一个commit可以有多个(至少一个)父commits。
    • tags
      tag用于给某个上述类型的对象指配一个便于开发者记忆的名字, 通常用于某次commit。

    在.git/objects/中存储了所有的对象,如用命令

    find .git/objects -type f

    列举出所有对象如下(这里只列四个作为例子)

    .git/objects/06/cd8f74b5114222c74d2042b7d7b6a57feb7a74
    .git/objects/08/a69220e57387cd1b6207d147be44d54b356af4
    .git/objects/0e/e6ff926999e39a1c61c470bc435224a74ba0a5
    .git/objects/56/f0a1291c46803558687eeea807e07ae1a861ef

    git用SHA1值的前两个数字来分目录存储对象,因此上述四个对象分别为

    06cd8f74b5114222c74d2042b7d7b6a57feb7a74
    08a69220e57387cd1b6207d147be44d54b356af4
    0ee6ff926999e39a1c61c470bc435224a74ba0a5
    56f0a1291c46803558687eeea807e07ae1a861ef

    用命令

    git cat-file -t <SHA1>
    git cat-file -p <SHA1>

    可以分别查看对象的值和内容。一般地,使用SHA1值的前面几位(而不是全部)就可以区分不同的对象,因此上述命令中可以用如git cat-file -t 06cd8f。

    二. 如何查看对象的SHA1值

    1.  查看文件的SHA1值,用命令
      git hash-object file
    2. 查看SHA1值对应的对象的内容,也可用命令
      git show <SHA1>
    3. 查看commits,可用命令
      git log --pretty=oneline

      这会给出commit的历史记录。每行行首显示了每次提交的SHA1值。然后用

      git show <SHA1>

      显示commit的内容。

    4. 查看每次commit指向的tree,用命令(如对commit 5ca6fc)
      git rev-parse 5ca6fc^{tree}

      会显示5ca6fc指向的tree的SHA1。如果想进一步查看tree的内容,用命力

      git show 5ca6fc^{tree}

      或者

      git cat-file -p 5ca6fc^{tree}

      后者输出形如

      100644 blob 76018072e09c5d31c8c6e3113b8aa0fe625195ca    file1
      100644 blob 5716ca5987cbf97d6bb54920bea6adde242d87e6    file2
      100644 blob 10e2d16377371e6436ba3779e62381fdaf8fcfbf    file3
      040000 tree edf40c2308b255c4aebc34aa9cce134131778a14    src

      可以看出,这个tree包含三个blob和一个子tree。

    5. 查看tag,可用
      git tag

      列出所有的tag。对于某个tag “v1”,用命令

      git rev-parse v1

      查看tag的SHA1值。

  • 相关阅读:
    葡萄城报表介绍:Web 报表
    葡萄城报表介绍:B/S 报表软件
    深入解析 ERP 计划的各个层次
    大数据商业智能的十大戒律
    活字格企业 Web 应用生成器新手上路指南
    ERP 实施执行力提高的障碍,看看你中了几招?
    11招教你做好 ERP 系统维护
    使用yum命令安装lamp和lnmp
    yii2文件上传
    yii2.0使用ActionForm创建表单
  • 原文地址:https://www.cnblogs.com/liyropt/p/2812194.html
Copyright © 2011-2022 走看看