美文网首页
09 .git目录

09 .git目录

作者: 不会看源码 | 来源:发表于2019-03-20 04:23 被阅读0次
    打开某个已经配置git的项目,可在项目里面找个这个.git的文件夹,这里以BaseRecyclerViewAdapterHelper开源项目和我的demo项目为案例讲解: .git目录

    分析:
    其中比较重要的几个是:refs、config、HEAD、objects

    hooks:这个目录存放一些shell脚本,可以设置特定的git命令后触发相应的脚本;在搭建gitweb系统或其他git托管系统会经常用到hook script。

    info:包含git仓库的一些信息

    logs:可以说是commit提交的日志记录,里面有refs文件夹和HEAD文件。



    objects:每次文件的增删改都有记录,就是这个objects里面处理的,具体情看。
    https://segmentfault.com/q/1010000016122016

    refs:分支的管理。本地的分支,远程的分支,分支的暂时备份等。
    它里面包含的一些文件:
    heads文件夹:它里面存储的是一系列的本地分支的对象,每个对象的文件名就是本地的一个分支名,使用git branch查看本地分支命令时,查询出的所有本地分支就是取的heads文件夹下所有文件的名称。

    stash文件存储的是所有你使用git stash命令暂存的记录,是一个列表。使用git stash list时,查询出的列表就是从stash中取出来的。

    remotes文件夹里存储的是远端的一系列分支的对象,每个对象的文件名称就是远端的一个分支名称,使用git branch -a查看远端分支命令时,查询出的所有本地分支就是取的remotes文件夹下所有文件的名称。

    tags:对某一时间点上的版本打上标签,具体请去了解git tag命令。

    refs文件夹里面暂时知道有这些,如果还有其他的,就请大家帮忙完善了。当你查看你的refs目录下面有些文件夹或者目录没有,那是可能你这个项目还没有用到对应的命令,所以还没有生成出来。 refs.png



    config:信息配置文件,保存你的设置。比如远程URL,你的邮箱、用户名等。
    每一次在控制端使用“git config”的设置,都记录在这个文件里面。

    config.png

    description:仓库的描述信息

    HEAD:记录你当前工作使用的是哪个分支。也可以说是指向了refs目录下的heads文件夹,里面包含着当前项目本地的一些分支。

    index:暂存区(stage),是一个二进制文件

    packed-refs:优化,周期性地运行垃圾回收将移除不必需要的对象,并将引用压缩至单个文件中,来提高性能。
    https://segmentfault.com/a/1190000007996197

    ORIG_HEAD:上个工作空间使用的分支。比方当前分支是dev,切换dev分支之前是使用master分支。(或者说是head指针上一次指引的节点位置)

    COMMIT_EDITMSG:最近一次提交的信息记录





    参考的资料:

    1. 苏玲-玩转Git三剑客
      https://my.oschina.net/wangyuzhan/blog/1619654?utm_medium=referral
      https://segmentfault.com/a/1190000007996197
      https://segmentfault.com/q/1010000016122016

    相关文章

      网友评论

          本文标题:09 .git目录

          本文链接:https://www.haomeiwen.com/subject/fnhamqtx.html