在讲完Git的历史故事和分布式特性之后,按照之前的计划是打算直接开始介绍Git多人单分支集成协作时的常见场景,但考虑后还是觉得先简单的介绍下Git的基础知识较好。Git的安装我就不占用篇幅多做介绍了,请大家自行参考官网。
Git官网文档
https://git-scm.com/book/zh/v2
macOS平台下载地址
https://git-scm.com/download/mac
Windows平台下载地址
https://git-scm.com/download/win
Linux平台下载地址
https://git-scm.com/download/linux
为了介绍后续的知识,我在Github上面建了个示例工程,后续的演示都以改工程为依托。https://github.com/AlleriaWindrunner/git-learning.git。那么首先我们切换到干净的目录:

然后克隆该工程到本地:

然后正式开始我们的本篇命令config介绍,首先我们来看看config命令的输出:

我们看到直接输入config会输出一些usage信息,总共分为四大类:
Config file location(配置文件的作用域)
Action(动作)
Type(类型)
Other(其它)
那配置文件的作用域名是什么意思呢?
git config --local 作用域为当前仓库。
git config --global 作用域为当前用户的所有仓库。
git config --system 作用域为当前系统登录的所有用户。
我们可以看到Action中有一个-l,--list list all命令,顾名思议其作用就是查看git仓库的配置信息,那么我们就在三种作用域下分别使用list命令看看其有什么区别:



我们来逐个分析下,首先是系统作用域下报错“fatal: unable to read config file '/etc/gitconfig': No such file or directory”,从这里我们可以得出的信息:
config命令的输出其实是从git的配置文件里面读到的。
系统作用域的git配置文件是/etc/gitconfig。
其具体的配置会在后续介绍,这里不多做赘述,有兴趣的朋友可以自行到官网查阅资料进行配置。其次我们对比本地作用域和全局作用域,最为眼熟的当然是user.email和user.name这两个配置,其作用我相信大家应该都知道,当然是Git账户的邮箱和用户名,我们都知道Git针对每次修改都会有提交记录,邮箱和用户就是用来唯一标识账户信息的。我们发现本地作用域下并没有这两项配置而全局作用域下有,那我们就用示例工程来做个小测试:我计划给此次的Git知识分享写一个目录在README文件中,然后我门提交并同步到远程仓库,我们看看提交记录的帐户是什么?


当我们提交的时候Git会提示我们输入账户信息。

这个时候我们在Github上面可以看到一条提交记录,但不是我想要使用的账户。那么我们在全局作用域中把账户信息修改为演示账户:

这个时候我们看到全局作用域配置中的账户信息已经修改,这个时候我们修改下README文件再来提交一下:

这个时候我们再去Github上面就可以看到刚刚设置的账户信息的提交记录了。
Tips:如果任何作用域都没有配置账户信息会是怎么样呢?当前仓库作用域和全局作用域中都有配置会是哪个优先呢?大家可以自己去试试哦。
好了,到这里config命令就介绍的差不多了,总结下:config命令就是用来维护Git配置的信息的,希望大家好好理解并使用哦。




