Git——概念——版本库

  版本库指的是.git目录,介绍版本库下各个文件和文件夹的作用。

1、文件

1.1  index

  暂存区文件,存储一次提交到当前时间的变更集(当前时间还未提交)。

1.2  config

  保存版本库的配置信息,它的作用域有三种,

  system:作用域为系统变量,适用于电脑上的任何用户创建的任意版本库

  global:作用域为当前用户创建的任意版本库。

  local:作用域为当前版本库。

  常见的配置信息有个人信息,例如user.name, user.email,分支关联信息,例如:

[branch "xx"]
	remote = origin
	merge = refs/heads/xx

  可以通过git config指令,修改各个作用域的配置文件。分为两类,配置文件内容的操作,某个配置项的操作。

  1.2.1  配置项

  格式:

git config <file-option> --type=<type> --add key value

  选项:

    file-option:文件的选项。例如作用域global, system, local   

    type:数据的类型,默认类型为key-value,还有布尔,int,patch等其他类型,实际使用场景较少,略。

    add key value:具体的某个命令,这里以添加为例。其中add可以省略,默认为添加键值对。

  示例:

    git config –-global user.name xx

  配置项的增删改查。

  新增: git config --scope –-add key value

  查询:git config --scope --option –-list, option略。

  删除:git config --scope –-unset key。

  批量删除:git config --scope --unset-all key。

1.2.2  配置文件

  格式:

git config <file-option> command

  选项:

    file-option:文件的选项,与操作配置项的指令含义相同。

    command:具体的指令。

  文件操作:

          编辑:git config –global -e

  文件内容:针对的都是存量内容。

         新增: git相关操作会自动同步到config文件中。

         查看:git config [–-get || --get-all] section.xx,例如core.bare,get-all获取当前key对应的所有value。

         正则表达式查看:git config –scope –get-regexp 表达式, 例如git config –scope –get-regexp core.*,查看section core下面的所有变量。

    删除:git config --scope –remove-section name,section通常由【】包裹。

    重命名:git config --scope –rename-section old_name new_name

1.3  description

  版本库的描述,它用于描述版本库的用途。类似于Java在创建包时,创建的package-info.java。

1.4  head

  保存Head当前指向的Commit对象。它包含两个信息,第一个信息是分支名称,第二个信息是Commit对象的信息。

2、文件夹

2.1 objects

  它用于存放核心对象,blob,commit,tree,每种类型的对象都一一对应SHA1值,并以它的前两位作为目录名称,后126位作为文件的名称。

  打开目录,通过人是无法识别出对象的类型,而且也无法查看文件的内容,都是二进制文件。

  切记勿修改,移动,删除其中的内容。

2.2  refs

  存放引用,通常分为三类,

  本地的分支:存储分支信息。

  远程的分支:目录名称为远程版本库的名称,子目录与本地分支没有区别。

  tags:存储tag对象。

2.3  logs

  存放Git的日志,大部分是引用日志,即HEAD相关的日志。

  可以通过git reflog, git log命令查看日志的内容

2.4  info

  存储其他信息,在该目录下最常见的文件为exclude,指定排除哪些文件。

2.5  hooks

  它存放hook脚本,功能类似于事件监听,在git指令之前或之后执行特定的shell脚本,hooks目录下存放的是示例脚本,可以直接删除。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章