Git - config

想象这样的应用场景:当一个版本库被多人维护的时候,如果出现导致程序崩溃的bug,那我们该如何追踪定位具体的肇事者,尤其在现在开发者遍布全球各地的大环境下。因此,记录每次提交人的姓名以及联系方式显得至关重要。那这是否意味着每次进行提交的时候需要加上自己的相关信息?当然不是这样的啦,这时候我们就需要config文件帮忙。

Git的config文件拥有不同层次的配置,可以理解为全局配置文件和局部配置文件,按照优先级降序可以分为

.git/config
某个版本库特定的配置设置,拥有最高优先级
~/.gitconfig
自定义的配置设置,也就是git config –global命令所操作的配置
/etc/gitconfig
系统范围的配置设置,优先级最低,此文件可能在其他位置活着不存在,可以不去理会
(ps:文件前面出现 ‘.’ 说明此文件隐藏,对用户不可见)

在此稍作说明,拥有最高优先级的 .git/config 文件位于特定版本库的 .git 目录下。
我们先创建个空目录,然后用 git init 命令初始化这个目录让 git 来接手这个棘手的烂摊子
这里写图片描述
然后cat .git/config (或者用git config -l,执行这个命令git会从其他config文件读取信息)
Git - config_第1张图片
里面的参数是都是默认值,暂时不必知道具体的意思
接下来添加用户名和邮箱和电话配置

$ git config user.name "username"
$ git config user.email "[email protected]"
$ git config user.phone '12345678"

Git - config_第2张图片
一般需要用户名和邮箱就够了,不需要电话的话只要用

$ git config --unset user.phone

(如果修改~/.git/config当然是 $ git config –unset –global user.phone)
这就配置好了每次提交时候的作者信息,之后执行的提交类似于这样
这里写图片描述

小结:config一般用于配置用户名和邮箱,这样的话对版本库的每次修改都会记录详细的提交信息,便于多人开发情景下的追踪。具体设置如下

$ git config (--global) user.name "username" 
$ git config (--global) user.email "[email protected]"

如前面所说,以上可选参数 –global是对 ~./gitconfig目录中的参数进行修改,可以理解为面向对象里面的父类,假设你有多个版本库,如果某个特定的子版本库没有重新定义config,则使用其父类成员属性;如果某个子版本库 “重载” 了 –global 中的 config ,也就是用不带 –global参数命令进行设置的属性,则优先使用子类的成员属性。

git config除了配置提交信息外,还有其他的作用,诸如默认的文本编辑器啦,分析工具啦,比如我用sourcetree来管理git仓库的时候会产生这些配置
这里写图片描述
这些东西会在以后深入了解git的时候逐渐掌握,对于一般的版本控制,这都不是必须的,所以可以先放着不管。
以上。
参考文献:Git版本控制管理(第2版)

你可能感兴趣的:(Git)