git config是做什么的?
- git config作用
- 配置级别
- 三种配置级别的介绍及使用,
- 配置文件说明
- 使用说明
- git confi查看参数
- 默认/不使用这个参数 情况下 Git 使用哪个配置等级?
- 一些常见的行为
- 查看配置信息
- 设置配置信息
- 删除配置信息
- 一些常用的配置信息
- 用户信息
- 使用例子
- 默认编辑器
- 默认合并工具和差异比较工具
- 配置 Git 别名
- 例子
- 行尾转换(换行符处理)
- true:在 Windows 上,Git 会自动将 CRLF(回车换行)转换为 LF(换行)存储,并且在检出时会将 LF 转换回 CRLF。
- 配置推送的默认行为
git config作用
git config是Git的一个非常核心的命令,用于配置Git的行为和属性。
这些行为主要是关于git工作涉及到的一些配置,比如commit者的信息,默认编辑器的配置等等。
行为和属性包括一些常见的:
- 用户信息:用户名和邮箱
- 作用:用来标志每次commit的作者。(否则都不知道是谁提交的,不知道是谁的锅)
- 如下图git log查看commit记录时可以看到每一个commit的作者及邮箱。(这个是可以配置的,但是开发过程中一般不会改动了)
- 编辑器:设置Git默认使用的文本编辑器
- 合并工具和差异比较工具:配置 Git 使用的工具来处理合并冲突或比较文件差异。
- 指令别名:通过创建git命令的别名来提高操作效率。-
- Git的行为:配置Git的一些行为,比如换行符处理、默认推送方式等。
配置级别
Git 配置有三种配置级别,分别对应三种作用范围,配置值会根据其作用范围被存储在不同的配置文件中 (本质就是不同的配置文件) 。用户可以为不同的范围设置不同的配置值来符合自己的使用。
三种配置级别的介绍及使用,
作用范围越小应用优先级越高,接下来按应用优先级最高(作用范围越小)==>应用优先级(作用范围越大)最低来介绍:
应用优先级(越高越优先使用) 从高到低:
本地级 > 全局级 > 系统级
-
本地级(Local-level):也叫仓库级,适用于某一个 Git 仓库,仓库级配置只对当前仓库有效。
- 配置文件路径:这个配置存储在该仓库根目录下的 .git/config 文件中。也就是没有Git仓库都有一个这样子的文件。
- 使用参数“–local” 来指定仓库配置
- git config --local xxx
-
全局级(Global-level):也就用户级,适用于当前用户的所有 Git 仓库。通常,用户会设置自己的用户名user.name、电子邮件user.email等信息,这些设置会在全局范围内生效。
- 配置文件路径:这个配置存储在用户主目录/家目录 ~中的 .gitconfig 文件中。
- 应用说明:这个是最常用的,配置它来实现配置所有的Git仓库信息,除非少部分需要当独配置特定的信息,才会配置本地级去覆盖全局级的配置。
- 使用参数“–global” 来指定全局配置
- git config --global xxx
-
系统级(System-level):适用于系统中所有用户的配置(指系统中所有电脑用户的git配置)。一般来说,你不会频繁地修改这个级别的配置,除非你是系统管理员或进行全局配置。
- 配置文件路径:存储在 Git 的安装目录下\etc\gitconfig。
- 使用参数“–system” 来指定系统配置
- git config --system xxx
配置文件说明
所有的配置都保存在配置文件当中,所以我们可以直接找到配置文件看看配置,甚至可以直接通过修改配置文件来修改配置,但是这样的操作不建议,毕竟git config就是为了用户不需要直接去修改配置文件而创建的,所以我们一般还是直接通过git config来配置/获取 配置信息。
使用说明
配置级别作为git config的一个参数,所以只要是git config命令都可以选择使用这个参数。
下面讲解的配置都是通过git config命令来配置的,所以都可以选择使用/不使用配置级别参数。
git confi查看参数
输入git config命令,可以获取该命令可使用的参数
默认/不使用这个参数 情况下 Git 使用哪个配置等级?
-
没有指定等级时,Git 默认使用 --local 配置:
当你在一个 Git 仓库内运行 git config 命令时(不带 --global 或 --system 等选项),Git 会默认在当前仓库的 .git/config 文件中查找或修改配置项。
如果没有找到仓库级配置,Git 会回退到 --global 配置:
-
如果你在一个仓库内没有找到相关配置项(即 .git/config 文件中没有设置),Git 会自动查找用户级配置,通常在用户的主目录下的 .gitconfig 文件中。
-
如果全局配置也没有,Git 会回退到 --system 配置。
一些常见的行为
查看配置信息
-
查看所有的配置项:
# (包括全局配置和局部配置) git config --list
- 为了方便观看,通常不会直接查看全部,而是使用配置级别参数来查看某一级配置的所有配置项:
# 查看本地级 所有配置项 git config --local --list # 查看全局级 所有配置项 git config --global --list # 查看系统级 所有配置项 git config --system --list
- 为了方便观看,通常不会直接查看全部,而是使用配置级别参数来查看某一级配置的所有配置项:
-
查看某个特定配置项,如查看user.name:
# git config 配置项 git config user.name
设置配置信息
# 语法:git config 配置项 配置项要配置的信息
# 例子:
# 配置 配置项user.name 为 lxc
git config user.name lxc
删除配置信息
使用参数–unset实现
# 语法:git config --unset 配置项
# 例子:
# 删除本地的用户名
git config --unset user.name
一些常用的配置信息
用户信息
用户信息主要是用来给commit表明作者身份的(每次commit都会把用户信息一起记录到git log当中);毕竟git是一个方便多人共同开发的一个代码管理工具,多人开发,我们需要知道每次commit的作者是谁。
用户信息包括:
- user.name:表明commit时的用户名
- user.email:表明commit时的邮箱地址
使用例子
- 用户需求:
-
一次性配置所有Git仓库默认的用户信息(user.name为lxc user.email为www.lxc.com)
git config --global user.name lxc git config --global user.email www.lxc.com
-
在特定某个Git仓库又要配置其他用户信息(user.name为lrd user.email为www.lrd.com)
git config --local user.name lrd git config --local user.email www.lrd.com
-
默认编辑器
默认编辑器指的是Git默认使用的文本编辑器(例如,vim、nano、emacs 等),每当Git需要你编辑提交你的信息或合并冲突时,它将调用这个编辑器。
而这个默认编辑器我们可以通过git config进行修改成其他的编辑器。
- core.editor:默认编辑器
- 配置默认编辑器
# 配置默认编辑器为nano git config core.editor nano
默认合并工具和差异比较工具
- merge.tool:指定 Git 合并时使用的工具。
- diff.tool:指定 Git 比较文件差异时使用的工具。
# 全局 均配置为 vimdiff
git config --global merge.tool vimdiff
git config --global diff.tool vimdiff
配置 Git 别名
可以为原来的Git命令设置一个便捷的别名,方便自己使用
- 语法:git config alias.xx yyy
- xx:别名
- yyy:原git指令,例如status、add、commit等
例子
# 为git status 配置别名 git st,这样就可以直接用git st代替git status
git config --global alias.st status
# 为git checkout 配置别名 git co
git config --global alias.co checkout
行尾转换(换行符处理)
- core.autocrlf:该配置项用于管理不同操作系统(特别是 Windows 和 Unix 系统)之间的换行符差异
配置推送的默认行为
- push.default:配置 git push 的默认行为。常见的选项包括:
- 可配属性:
- simple:仅推送当前分支到与远程对应的分支。
- matching:推送所有名称匹配的分支。
- current:推送当前分支到远程。
- upstream:推送当前分支到其上游分支。
- 可配属性: