git config介绍及基本使用方法

引言

git命令应该是工做中几乎每天都要接触到的,对于git一些经常使用命令你们也都能熟练操做。但git的配置却较少人关注。git config虽然用得少,但它很重要,使用它后会给咱们带来极大的便利。下面就简单介绍下这个命令及其基本使用方法~    git

先谈谈字面意思,config译为配置,那git config就是获取和设置仓库的配置vim

要了解这个命令,咱们能够在控制台中打出git config,就能够看到一些相关的用法,以下图:
图1 git config的使用方法(下面会屡次说起)
untitled.png编辑器

config file location

据了解,git config命令就是对git进行一些配置。而配置通常都是写在配置文件里面,那么git的配置文件在哪里呢?工具

从上图咱们能够看到相关的三个关键词,即localglobalsystem,这就是git里的3个配置文件 spa

  • .git/config 文件,即「仓库级配置」文件:这个配置中的设置只对当前所在仓库有效。使用.git/config --local,此时读写的就是这个文件。这里的配置仅仅针对当前项目有效。
  • ~/.gitconfig 文件,即「全局级配置」文件:用户目录下的配置文件只适用于该用户。可使用 git config --global 选项去设置它。
  • /etc/gitconfig 文件,即「系统级配置」文件:系统中对全部用户都广泛适用的配置。可使用 git config --system 选项。

如何选择要操做的配置文件

上文提到了三种配置文件,及其适用的状况。那么咱们应该操做哪一个配置文件呢?答案固然是根据不一样状况而定啦~操作系统

(1) git config [--local] 针对一个仓库code

使用场景:只想在某个项目中生效,而不是在全部的git仓库中都生效 regexp

例如:orm

$ git config core.ignorecase false

(2) git config --global 针对一个用户 ci

使用场景:想让当前用户操做的全部仓库都生效,例以下面要说的配置快捷键

(3) git config --system 针对一个系统,必需要管理员权限,即便用sudo
使用场景:让这个系统下的全部用户操做的仓库都生效,例如配置文本编辑器的,就能够针对系统去设置

查看配置项及其优先级

了解了以上三种配置类型后,那么,怎么查看具体的配置呢?咱们能够用如下的命令来查看

$ git config [--local|--global|--system] --list
// 或者
$ git config [--local|--global|–system] -l
// 注意:使用list时有两个横线“--” ,使用简写的 l 时仅有一个“-”

$ git config -l 为查看当前生效的配置,即三个配置文件的集合

咱们能够来尝试一下

 
上图是 local级 的配置。咱们还能够用 cat命令 来查看该config文件

从这个图咱们能够清楚的看到,在git中,每一项的配置名称又叫作“section”,“section”下面的每一行对应着一个key和一个value。

好比上图中的 core 即为一个 section,名为 repositoryformatversion 的 key 对应的 value 为0。每一个 section 能够对应不少对key、value,而key、value一定成对出现,但并非一对一,也就是说一个key能够设置多个value(git默认采用最后一个)。


这是 global级 的配置。与 local级 的比较下,咱们很快便意识到,cat.name 在 local级 值为duanwu,而在 global级 的值却为miao。
那么,问题来了,一个git项目中的配置究竟是由什么决定的呢?这就涉及到配置项的优先级问题了。

对于git来讲,配置文件的权重是「仓库 > 全局 > 系统」,即 「local > global > system」。git 会使用这一系列的配置文件来存储你定义的偏好,它首先会查找 /etc/gitconfig 文件(系统级),而后查找每一个用户的 ~/.gitconfig文件(全局级)。最后查找由用户定义的各个库中Git目录下的配置文件 .git/config(仓库级)。每个级别的配置都会覆盖上层的相同配置,因此 .git/config 里的配置会覆盖 /etc/gitconfig 中的同名变量。

其实很好理解,由于它是按 system、global、local 的顺序查找的,后面的同名配置会覆盖上一级的配置。

增删改查        

了解完配置文件的基本状况,下面就该谈谈怎么用了。PS:如下详细介绍了各经常使用命令并配图,有兴趣的能够本身也操做一遍~

回到图1,其中的Action,涉及到的都是git config的用法。

首先要知道的是,①增、删、改,若不显式说明是哪一个配置,则默认操做的是 local 配置。②对 system 进行增删改操做时,须要管理员权限

1. 增:--add

$ git config [–-local | global | system] --add section.name value

例:git config --add cat.name niuniu (默认状况,即添加到local配置中,以下图)

  正如上面说的,key和value必须成对出现,缺一不可,缺项则报错,以下。

2. 删:--unset | --unset-all | --remove-section

$ git config [–-local | global | system] --unset section.name

例,git config --unset cat.age


            
如果一个key对应多个value,那么应该把要删除的value带上,不然会报错(以下)

假若想一次性把某个属性的全部值都删掉,则用--unset-all命令

$ git config [–-local | global | system] --unset-all section.name

例,git config --unset -all cat.name

以上两个命令就是与add相对,删除配置项的某个属性值(或全部属性值)。虽然属性值删除了,但该配置项还存在,若想将配置项删除,则使用remove-section命令

$ git config [–-local | global | system] --remove-section section

3. 改:--rename-section | --replace-all

// 从新设值(前提:此key只对应一个value,不然报错) 
$ git config [–-local | global | system] section.key newValue

// 重命名
$ git config [–-local | global | system] --rename-section oldName newName

// 替换全部的值
 $ git config [–-local | global | system] --replace-all section.key newValue

此时,将会把key对应的全部value值都替换成新的。须要注意的是,此时最终只保留一个value(以下例)

    
咱们也能够直接编辑配置文件,用如下命令:

$ git config --local -e | git config --local --edit

缺local项时默认编辑local文件

4. 查:get | get-all | get-regexp

获取某个属性值

$ git config [--local | global | system] --get section.key [value]

若是此key对应多个value,且获取时不带具体的value,那么获取的是最后的value(以下例)
固然了,若是 global, system 下也有对应的cat.name,那该项是会被local下覆盖的,也就是获取不到的(记住查找的顺序,永远是先system 再 global 再 local, git默认采用最后一项)
 

获取全部属性值
没有注明哪一个配置的话,则是获取全部配置下的属性值,包括global,system

$ git config [--local | global | system] --get-all section.key

获取某个section下的全部key和value(包括global和system)

$ git config [--local | global | system] --get-regexp section

    

5. 查 Type:--bool | --int | --bool-or-int | --path

正如“引言”的图中Type模块下的命令,这些是用来判断value值的类型的。

$ git config [--local | global | system] [--bool|--int|--bool-or-int|--path] section.key

例 git config --local --bool cat.name

若是cat.name的值既不是布尔值,也不能被转换为布尔值,那就会报错

经常使用的配置

1.配置用户信息

   当咱们安装好git时,第一个要配置的就是你的我的信息——用户名和电子邮件地址,这两项配置很重要,每次commit时都会引用这两条信息,以说明是谁提交了代码。   

如上图的Author,若是你没配置我的信息,就会采用默认的状况。

2.取别名 配置快捷键

   配置快捷键虽然不是必须的,但当学会偷懒后,会给工做带来极大的便利~
平时操做git仓库时,有个经常使用的命令git status,status这个单词虽然短但实在容易打错。咱们就能够给它取个别名 (alias意为别名):

$ git config --global alias.st status

这条命令表示 alias.st = status,之后就可使用 git st 代替烦人的 git status 啦~

同时,用这种方法也能建立新的命令,例如用 last 表示查看最后一次提交

$ git config --global alias.last 'log -1 HEAD'

经常使用的命令还有不少,均可以简写。不少人都用 co 表示checkout,ci 表示commit,br 表示 branch,固然你也能够本身命名,用的顺手就能够啦~

3.文本编辑器

   git也能够设置默认使用的文本编辑器。当须要你输入一些额外消息的时候,会自动调用一个外部文本编辑器给你用。默认会使用操做系统指定的默认编辑器,通常可能会是 Vi 或者 Vim。若是你有其余偏好,好比 Emacs 的话,能够从新设置:

$ git config --global core.editor emacs

4.差别分析工具

还有一个比较经常使用的是,在解决合并冲突时使用哪一种差别分析工具。好比要改用 vimdiff 的话:

$ git config --global merge.tool vimdiff

结语

git config 还有不少其余的功能,以上只是介绍了一些经常使用的。有兴趣的能够本身了解噢~

    有须要帮助的地方,可使用 git help config 命令查看帮助文档。或者戳 https://git-scm.com/docs/git-config

相关文章
相关标签/搜索