首页 > 代码库 > Git初始化之思考git config命令的各参数有何区别
Git初始化之思考git config命令的各参数有何区别
在之前出现的git config 命令中,有的使用 --global 参数,有的使用了 --system 参数,这两个参数有什么区别吗?执行下面的一系列命令后,你就会明白使用不同参数的 git config 命令实际操作的文件了。
执行下面的命令,将打开 /path/to/my/workspace/demo/.git/config 文件进行编辑。
$ cd /path/to/my/workspace/demo/ $ git config -e
执行下面的命令,将打开 /home/fuhd/.gitconfig (用户主目录下的.gitconfig文件)全局配置文件进行编辑。
$ git config -e --global
执行下面的命令,将打开 /etc/gitconfig 系统级配置文件进行编辑。如果Git安装在非标准位置,则这个系统级的配置文件也可能是在另外的位置。
$ git config -e --system
Git的三个配置文件分别是版本库级别的配置文件,全局配置文件(用户主目录下)和系统级配置文件(/etc目录下)。其中版本库级别的配置文件的优先级最高,全局配置文件次之,系统级配置文件优先级最低。这样的优先级设置可以让版本库.git目录下的config文件中的配置覆盖用户主目录下的Git环境配置,而用户主目录下的配置也可以覆盖系统的Git配置。
执行前面的三个git config命令后会看到这三个级别的配置文件的格式和内容,原来Git配置文件采用的是INI文件格式。示例如下:
[core] repositoryformatversion = 0 filemode = true bare = false logallrefupdates = true
git config命令可以用于读取和更改INI配置文件的内容。使用只带一个参数的 git config <section>.<key>命令可用来读取INI配置文件中某个配置的键值,例如读取 [core] 小节的bare的属性值,可以用如下命令:
$ git config core.bare false
如果想更改或设置INI文件中某个属性的值也非常简单,命令格式是:git config <section>.<key> <value>。可以用如下操作:
$ git config a.b something $ git config x.y.z others
如果打开.git/config文件,会看到如下内容:
[a] b = something [x "y"] z = others
从上面的介绍中可以看到,使用 git config 命令可以非常方便地操作INI文件,实际上可以用 git config 命令操作任何其他的INI文件。
向配置文件test.ini中添加配置。
$ GIT_CONFIG=test.ini git config a.b.c.d "hello world"
从配置文件test.ini中读取配置。
$ GIT_CONFIG=test.ini git config a.b.c.d hello world
Git初始化之思考git config命令的各参数有何区别