1. git config简介
我们知道config是配置的意思,那么git config命令就是对git进⾏⼀些配置。⽽配置⼀般都是写在配置⽂件⾥⾯,那么git的配置⽂件在哪⾥呢?互动⼀下,先问下⼤家。
件:该⽂件位于当前仓库下,路径.git/,⽂件名为.gitconfig,这个配置中的设置只对当前所在仓库有效仓库级配置⽂件内容如下:第⼆个是全局级配置⽂件:win7下⾯路径,在⽤户⽬录下,以个⼈的PC机为例,其路径为:C:\\Users\\zuoyu.ht,⽂件名为.gitconfig全局级配置⽂件内容如下:
最后是系统级配置⽂件:本地git的安装⽬录下,以左御的git安装路径为例:D:\\Program Files\\Git\\etc,⽂件名为:gitconfig,内容如下:从三个图的对⽐中,我们可以发现,有些配置项的名称是⼀样的,⽐如“core”,在git中,每⼀项的配置名称⼜叫做“section”,“section”下⾯的每⼀⾏对应着⼀个key和⼀个value。需要注意的是:系统级配置⽂件不同于另外两个配置⽂件,是因为他少了⼀个点,因此⽤vim打开的时候,是没有⾼亮显⽰的。”core”这个section在每个配置⽂件中都有,那么它git最终会调⽤哪个配置⽂件呢?这就要有⼀个先后顺序了。2. 配置⽂件如何⽣效的
”,内嵌样式“”
和外部样式“ ”。这三种样式的权重是⾏内>内嵌>外部。类似的,对于git来说,配置⽂件
的权重是仓库>全局>系统。Git会使⽤这⼀系列的配置⽂件来存储你定义的偏好,它⾸先会查找/etc/gitconfig⽂件(系统级),该⽂件含有对系统上所有⽤户及他们所拥有的仓库都⽣效的配置值。接下来Git会查找每个⽤户的~/.gitconfig⽂件(全局级)。最后Git会查找由⽤户定义的各个库中Git⽬录下的配置⽂件.git/config(仓库级),该⽂件中的值只对当前所属仓库有效。以上阐述的三层配置从⼀般到特殊层层推进,如果定义的值有冲突,以后⾯层中定义的为准,例如:.git/config和/etc/gitconfig的较量中,
.git/config取得了胜利。虽然你也可以直接⼿动编辑这些配置⽂件,但是运⾏git config命令将会来得简单些。下⾯我们就来看看如何利⽤git config命令来编辑配置各个级别的⽂件。 3. ⽤git config命令查看配置⽂件命令参数 –list, 简写 -l
格式:git config [–local|–global|–system] -l
查看仓库级的config,即.git/.config,命令:git config –local -l
查看全局级的config,即C:\\Users\\zuoyu.ht\\.gitconfig,命令:git config –global -l
查看系统级的config,即D:\\Program Files\\Git\\etc\\gitconfig,命令:git config –system -l
查看当前⽣效的配置,命令:git config -l,这个时候会显⽰最终三个配置⽂件计算后的配置信息,如下图: 4. 使⽤git config命令编辑配置⽂件编辑的英⽂单词是什么,没错,edit命令参数 –edit, 简写 -e
格式:git config [–local|–global|–system] -e
查看仓库级的config,即.git/.config,命令:git config –local -e,与–list参数不同的是,git config -e默认是编辑仓库级的配置⽂件。查看全局级的config,即C:\\Users\\zuoyu.ht\\.gitconfig,命令:git config –global -e
查看系统级的config,即D:\\Program Files\\Git\\etc\\gitconfig,命令:git config –system -e 执⾏这个命令的时候,git会⽤配置⽂件中设定的编辑器打开配置⽂件。 5. 增加⼀个配置项参数 –add
格式: git config [–local|–global|–system] –add section.key value(默认是添加在local配置中)
注意add后⾯的section,key,value⼀项都不能少,否则添加失败。⽐如我们执⾏:git config –add cat.name tom然后查看local中的配置:
注意增加⼀项配置⽽不赋值 git config –add cat.age,或者单单增加⼀个section,git config –add cat1,不会成功。6.获取⼀个配置项
有时候,我们并不需要查看所有配置的值,⽽是查看某个配置项的值,怎么做呢?命令参数 –get
格式:git config [–local|–global|–system] –get section.key(默认是获取local配置中内容)
我们先往global配置中写⼊⼀个cat.name=Tomcat的配置项,再使⽤git config –get cat.name看看得到的是什么结果就是local中的cat.name=Tom,因此git config –get section.key 等价于git config –local –get section.key如果获取⼀个section不存在的key值,不会返回任何值如果获取⼀个不存在的section的key值,则会报错 7.删除⼀个配置项命令参数 –unset
格式:git config [–local|–global|–system] –unset section.key
相信有了前两个命令的使⽤基础,⼤家举⼀反三就知道改怎么⽤了,来,我们试试删除local配置中的cat.name
-------------------------------------------------------------------------------------------------------设置 git status的颜⾊。
git config --global color.status auto
⼀.Git已经在你的系统中了,你会做⼀些事情来客户化你的Git环境。你只需要做这些设置⼀次;即使你升级了,他们也会绑定到你的环境中。你也可以在任何时刻通过运⾏命令来重新更改这些设置。
Git有⼀个⼯具被称为git config,它允许你获得和设置配置变量;这些变量可以控制Git的外观和操作的各个⽅⾯。这些变量可以被存储在三个不同的位置:
1./etc/gitconfig ⽂件:包含了适⽤于系统所有⽤户和所有库的值。如果你传递参数选项’--system’ 给 git config,它将明确的读和写这个⽂件。
2.~/.gitconfig ⽂件 :具体到你的⽤户。你可以通过传递--global 选项使Git 读或写这个特定的⽂件。
3.位于git⽬录的config⽂件 (也就是 .git/config) :⽆论你当前在⽤的库是什么,特定指向该单⼀的库。每个级别重写前⼀个级别的值。因此,在.git/config中的值覆盖了在/etc/gitconfig中的同⼀个值。
在Windows系统中,Git在$HOME⽬录中查找.gitconfig⽂件(对⼤多数⼈来说,位于C:\\Documents and Settings\\$USER下)。它也会查找/etc/gitconfig,尽管它是相对于Msys 根⽬录的。这可能是你在Windows中运⾏安装程序时决定安装Git的任何地⽅。
⼆.你的标识(Your Identity)
2.1 当你安装Git后⾸先要做的事情是设置你的⽤户名称和e-mail地址。这是⾮常重要的,因为每次Git提交都会使⽤该信息。它被永远的嵌⼊到了你的提交中:
$ git config --global user.name \"John Doe\" $ git config --global user.email
重申⼀遍,你只需要做⼀次这个设置。如果你传递了 --global 选项,因为Git将总是会使⽤该信息来处理你在系统中所做的⼀切操作。如果你希望在⼀个特定的项⽬中使⽤不同的名称或e-mail地址,你可以在该项⽬中运⾏该命令⽽不要--global选项。 2.2 你的编辑器(Your Editor)
现在,你的标识已经设置,你可以配置你的缺省⽂本编辑器,Git在需要你输⼊⼀些消息时会使⽤该⽂本编辑器。缺省情况下,Git使⽤你的系统的缺省编辑器,这通常可能是vi 或者 vim。如果你想使⽤⼀个不同的⽂本编辑器,例如Emacs,你可以做如下操作: $ git config --global core.editor emacs 2.3 你的⽐较⼯具(Your Diff Tool)
另外⼀个你可能需要配置的有⽤的选项是缺省的⽐较⼯具它⽤来解决合并时的冲突。例如,你想使⽤vimdiff: $ git config --global merge.tool vimdiff
Git可以接受kdiff3, tkdiff, meld, xxdiff, emerge, vimdiff, gvimdiff, ecmerge, 和 opendiff作为有效的合并⼯具。你也可以设置⼀个客户化的⼯具;查看第7章获得更多关于此的信息。 2.4 检查你的设置(Checking Your Settings)
如果你想检查你的设置,你可以使⽤ git config --list 命令来列出Git可以在该处找到的所有的设置: $ git config --list
user.name=Scott Chacon user.email=schacon@gmail.com color.status=auto color.branch=auto color.interactive=auto color.diff=auto ...
你可能会看到⼀个关键字出现多次,这是因为Git从不同的⽂件中(例如:/etc/gitconfig以及~/.gitconfig)读取相同的关键字。 在这种情况下,对每个唯⼀的关键字,Git使⽤最后的那个值。
你也可以查看Git认为的⼀个特定的关键字⽬前的值,使⽤如下命令 git config {key}: $ git config user.name Scott Chacon
2.5 获取帮助(Getting help)
如果当你在使⽤Git时需要帮助,有三种⽅法可以获得任何git命令的⼿册页(manpage)帮助信息: $ git help $ git --help $ man git- 例如,你可以运⾏如下命令获取对config命令的⼿册页帮助: $ git help config
这些命令⾮常友好,因为你可以在任何地⽅存取他们,即使⾮在线状态。如果⼿册页和本书仍然不⾜⽽你需要个⼈的帮助,你可以试着使⽤Freenode IRCServer上的#git或#github 频道(irc.freenode.net)。这些频道会定期由数百个对Git⾮常熟悉的专业⼈⼠所维护,他们会⾮常乐意帮助你。
2.6 总结(Summary)
你应该对Git是什么以及Git与你可能使⽤的其它CVCS之间的不同有了⼀个基本的了解。你也应当在你的系统中有了⼀个具有你个⼈标识的可以⼯作的Git版本。是时候来学习⼀些Git的基本知识了。