git config命令使用

本文介绍了Git的三种配置文件:仓库级、全局级和系统级,包括它们的位置、内容及优先级,并详细讲解了如何使用gitconfig命令进行配置的查看、编辑、添加、获取和删除。

1. git config简介

我们知道config是配置的意思,那么git config命令就是对git进行一些配置。而配置一般都是写在配置文件里面,那么git的配置文件在哪里呢?互动一下,先问下大家。
你们所知的git配置文件是放在哪里的?git有几个配置文件呢? 是的,聪明的你,稍微查查资料就知道咯,git里面一共有3个配置文件,首先是: 仓库级配置文
件:该文件位于当前仓库下,路径.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. 配置文件如何生效的
用一个我们大家都熟悉的例子来比较,就是css。一般来说,在一个页面中引入css文件的方法有三种,见: http://www.cnblogs.com/hutaoer/archive/2010/12/07/1899105.html
通俗的讲就是行内样式“<div style=“width:200px”>”,内嵌样式“<style type=“text/css”>div{width:200px}</style>”
和外部样式“<link rel=“stylesheet” href=“div.css”>”。这三种样式的权重是行内>内嵌>外部。类似的,对于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
<think>嗯,用户这次明确要求获取git config命令的详细解释。从提供的引用来看,用户已经收集了相当全面的参考资料,特别是关于配置级别和查看配置的方法。不过用户似乎需要更系统化的整理,而不仅仅是零散的功能点。 注意到用户上次的问题是关于git配置文件的层级概念,这次可以延续这个知识脉络。用户可能是个刚开始接触git配置管理的开发者,需要建立清晰的概念框架。那些引用中提到的“系统级/全局级/仓库级”分层结构特别重要,这应该是解释的核心骨架。 用户引用的材料里有些重复内容(比如查看配置的三种方式在[1]和[2]都出现了),需要整合。还发现引用[4]提到了两个高级用法:别名设置和取消跟踪文件,这些虽然实用但属于进阶内容,考虑放在功能详解之后作为补充技巧比较合适。 准备组织解释时打算分成五个逻辑部分:配置层级(强调覆盖规则)、基本语法结构、高频命令(get/set/list)、典型应用场景(凭证/编辑器/别名)、配置优先级演示。其中优先级演示用具体例子说明不同层级配置的覆盖关系,这样用户能直观理解。 特别注意要纠正引用[3]的一个小瑕疵:它说.git/config覆盖/etc/gitconfig,这个描述在Linux系统正确,但在Windows系统全局配置实际是%ProgramData%路径。不过考虑到用户没提操作系统,决定不展开系统差异,保持通用性描述。 最后考虑设计相关问题要覆盖三个维度:基础概念(如优先级判断)、故障排查(配置不生效怎么办)、高级应用(别名/钩子配置)。这样既能巩固知识,又能引导用户探索更深的内容。 </think>以下是`git config`命令的详细解释,结合核心功能分层说明: --- ### **一、配置级别(优先级从高到低)** 1. **仓库级(`--local`)** - 路径:`.git/config`(当前仓库内) - 仅影响当前仓库,优先级最高 - 查看命令:`git config --local -l` [^1][^3] 2. **全局级(`--global`)** - 路径:`~/.gitconfig`(用户主目录) - 影响当前用户的所有仓库 - 查看命令:`git config --global -l` [^1][^2] 3. **系统级(`--system`)** - 路径:`/etc/gitconfig`(系统目录) - 影响所有用户和仓库 - 查看命令:`git config --system -l` [^1][^2] > ️ 需管理员权限修改 --- ### **二、核心命令语法** ```bash git config [<级别>] <子命令> [<参数>] ``` - **`<级别>`**:`--local`/`--global`/`--system`(默认为`--local`) - **`<子命令>`**: - **查看配置** ```bash git config --list # 查看当前所有生效配置(合并各层级) git config <key> # 查看指定键的值(如 `git config user.name`) ``` - **修改配置** ```bash git config <key> <value> # 设置值(默认仓库级) git config --global user.email "name@example.com" # 全局设置邮箱 ``` - **删除配置** ```bash git config --unset <key> # 删除当前层级配置 git config --global --unset alias.lg # 删除全局别名 ``` --- ### **三、高频应用场景** #### 1. **用户身份配置(首次使用必设)** ```bash git config --global user.name "YourName" git config --global user.email "your.email@example.com" ``` #### 2. **文本编辑器设置** ```bash git config --global core.editor "vim" # 设置Vim为默认编辑器 ``` #### 3. **别名简化命令** ```bash # 创建 `git lg` 替代复杂日志命令 git config --global alias.lg "log --graph --pretty=format:'%C(yellow)%h %C(cyan)%d %s %Cgreen(%cr)'" [^4] ``` 效果: ![](https://i.imgur.com/IK6wUfR.png) #### 4. **忽略文件变更** ```bash # 停止跟踪已提交文件(保留本地文件) git rm --cached config/database.yml echo "config/database.yml" >> .gitignore # 加入忽略名单 git add .gitignore && git commit -m "忽略配置文件" [^4] ``` --- ### **四、配置优先级验证** 当同名配置存在于多层级时,生效规则为: **仓库级 > 全局级 > 系统级** ```bash $ git config -l | grep user.email user.email=local@repo.com # 仓库级覆盖全局 user.email=global@user.com # 全局配置 ``` > 实际生效值:`local@repo.com` [^3] --- ### **五、配置文件路径速查** | 级别 | 路径示例 | |-----------|-----------------------------| | 仓库级 | `./.git/config` | | 全局级 | `~/.gitconfig` | | 系统级 | `/etc/gitconfig` (Linux) | | | `C:\ProgramData\Git\config` (Windows) | ---
评论 7
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值