• 深入理解Git (一) - 元数据


    三分钟教你学Git仅仅是教我们会用Git了,但是内部的一些实现原理假设我们也知道一些的话会使我们使用起来更加顺手。这个系列就是在你用了Git一段时间之后,并想继续到Git的内部看一下到底而准备的。


    Git仓库是依据什么知道仓库的元信息呢?我们首先git init,git会在文件夹下创建一个.git的隐藏文件夹,这个文件夹里存储了关于这个仓库的全部元数据。Git对象就存在其下的objects文件夹内。所以有必要看一下这里边都还存储了什么东西:

    首先.git文件夹下有五个文件夹和三个文件:

    1 branches 

    2 hooks

    里边包括全部的钩子函数。同意你自己定义一些Git预先配置好的钩子,能够做一些自己自己定义的事情。比方当有修改的时候触发hudson进行构建。commit的时候加上一些每一个commit都须要有的信息,比方code review编号之类的。

    - applypatch-msg.sample

    - post-update.sample     

    - pre-commit.sample          

    - pre-push.sample    

    - update.sample

    - commit-msg.sample      

    - pre-applypatch.sample  

    - prepare-commit-msg.sample  

    - pre-rebase.sample

    3 info

    这个文件夹里边存储了exclude文件,能够使Git忽略掉一些内容。是对.gitignore功能的补充。

    4 objects 

    这个文件夹存储了上节我们提到的四种Git对象。

    5 refs

    - heads 本地哪个branch的哪个commit。

    - remotes

     -- origin 存储当前head的远程分支指向,这些信息在本地是仅仅读的,在本地能够checkout出来这些文件。可是不像heads会进行更新操作。

    三个文件

    6 config

    这个文件也是相当的重要。存储了关于本地仓库配置信息,各个branch的一些信息等。

    7 description


    8 HEAD

    存储当前head的实际指向,比方refs/heads/master


    另外另一个关键的文件index。存储stage的信息。


    那么有一个问题是:Git怎样定位版本号库?

    git会在当前文件夹中依次向上递归查找.git文件夹。直到找到。那么找到的.git文件夹就是工作区相应的版本号库,.git所在的文件夹就是工作区的根文件夹。


    原文:http://blog.csdn.net/hongchangfirst/article/details/45332917

    作者:hongchangfirst

    hongchangfirst的主页:http://blog.csdn.net/hongchangfirst


  • 相关阅读:
    Dubbo-admin管理平台搭建
    Zabbix监控Zookeeper健康状况
    Redis-stat 的安装与使用
    Jenkins配置基于角色的项目权限管理
    云计算的三种服务模式:IaaS,PaaS和SaaS
    PRC远程过程调用
    解决linux中ssh登录Warning:Permanently added (RSA) to the list of known hosts
    Maven仓库—Nexus环境搭建及使用
    SecureCRT使用本地公钥 SSH 免密码登录Linux
    Linux内存管理机制
  • 原文地址:https://www.cnblogs.com/mfmdaoyou/p/7397045.html
Copyright © 2020-2023  润新知