• 测开小知识: Git目录下都放了什么


    git具有最优的存储能力,在没有远端git服务器的情况下,git本地就可以独立作为版本管控系统,这其中.git裸仓库中起了关键作用,那么我们一起来看看.git下都放了哪些文件。

    打开Git Bash,切换到项目目录,具体命令,如下所示:

    $ pwd
    $ ll
    $ cd git-rainbow/
    $ ll
    $ cd mtxcrm/
    $ ls -la

    图片

    之前我们了解过如何生成一个git仓库,使用命令git init,创建完毕后,它会在当前路径下生成.git文件夹(或者叫目录),这个里面就装了git最核心的信息,我们一起来探秘.git中都有哪些内容。

    先通过以下命令进入到.git目录。

    01

    Git目录下文件清单

    然后看看我的.git目录下都有哪些文件?

    通过以下命令获取:

    cd .gitdist

    图片

    02

    HEAD

    以上这么多文件,哪些是我们经常使用的呢?

    HEAD就是我们经常要使用的文件,这个文件中存放的是什么内容呢?

    cd .gitdist

    图片

    这个文本文件中指出,这是一个引用,通过什么看出来的?通过ref:看出来的。

    一说到引用肯定是有指向的,这个引用具体指向哪里呢?refs/heads/temp。

    图片

    之前为了演示git log创建了temp分支。

    git branch -av

    图片

    *号标记,表示我们当前所在的工作分支。

    图片

    HEAD文件中存的这个引用,说明我当前本地的git仓库中,正在工作的分支是temp。

    图片

    那么,此时我们做切换分支操作,HEAD文件中的内容会变吗?

    我们执行切换分支命令,如下所示:

    git checkout master

    图片

    执行切换master分支命令,提示我们,这个操作必须运行在工作路径下。

    因此,我们来查看下我们当前的目录是不是工作目录。

    pwd

    通过以下截图可见,我们在.git目录下,确实没有在工作目录下。

    图片

    然后我们执行如下命令切换到工作目录下:

    cd…

    图片

    然后再次执行刚刚的切换master分支命令。

    cat .git/HEAD

    图片

    然后我们再来查看.git下的HEAD文件中的内容。

    cat .git/HEAD

    从以下接口可见,HEAD文件中的内容发生了变化,

    之前HEAD文件中的指向是temp,现在变成了master。

    图片

    也就是说,当我们切换分支的时候,HEAD文件中的内容跟着替换为当前分支名称。

    告诉我们,我们当前的工作分支是哪个分支。

    以上就是.git目录下HEAD文件存放内容的说明。

    03

    config

    除此之外,我们还可能会经常接触config这个文件。

    图片

    我们先来看看config文件中有什么信息?

    cat .git/config

    图片

    这里面我们比较熟悉的是,如下截图所示,[user]块中的内容,之前我们介绍config的时候,

    图片

    如果在当前仓库下面用local的方式,给用户的name以及email,同global不同的情况下,

    执行git config local操作,就会将相应的信息记录在config文件中,我们可以验证下。

    将name值改成rainbow,然后保存退出。

    vi .git/config

    图片

    这个config修改后,是不是直接影响到local配置呢?我们执行命令试试。

    git config --local --list

    如下截图所示,返回的信息太多,我们仅仅想知道username信息

    图片

    这个时候可以用另外一个命令查看,git命令后面直接跟你关注的东西

    git config --local user.name

    从如下命令返回结果信息,可见我的账号确实更改了。

    图片

    验证完毕,我们需要将自己的账号信息改回去,用什么命令?使用如下命令进行重新指定

    git config --local user.name ‘helen’

    注意:user.name后面是空格,而不是等号。

    图片

    然后我们再查看config文件是否账号变更回helen。

    先通过命令查看账号是否变更为原来的helen。

    git config --local user.name

    通过如下截图可见,账号变更为原来的helen。

    图片

    然后我们再来查看config文件下的账号是否也变更为原来的helen。

    cat .git/config

    从如下截图可见,配置文件config中name值也变更回原来的helen。

    图片

    总结,.git目录下的config文件中,存放的是git的配置信息,更确切的说,是跟本地仓库相关的配置信息都保存在config这个文件中,

  • 相关阅读:
    【 OpenGauss源码学习 —— 列存储(autoanalyze)】
    mysql使用--简单查询
    调用网络时报错name weight already exists
    实用篇-服务拆分及远程调用
    Android源码——TypedValue源码解析
    MySQL-索引详解
    【计算机网络 - 第六章】链路层
    mysql 每日自动备份数据库
    MySQL高级7-存储过程
    sqlserver列出所有的存储过程
  • 原文地址:https://blog.csdn.net/Testfan_zhou/article/details/127915772