git config是做什么的?

git config是做什么的?

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 使用哪个配置等级?

  1. 没有指定等级时,Git 默认使用 --local 配置:

    当你在一个 Git 仓库内运行 git config 命令时(不带 --global 或 --system 等选项),Git 会默认在当前仓库的 .git/config 文件中查找或修改配置项。

    如果没有找到仓库级配置,Git 会回退到 --global 配置:

  2. 如果你在一个仓库内没有找到相关配置项(即 .git/config 文件中没有设置),Git 会自动查找用户级配置,通常在用户的主目录下的 .gitconfig 文件中。

  3. 如果全局配置也没有,Git 会回退到 --system 配置。

一些常见的行为

查看配置信息

  • 查看所有的配置项:

    bash 复制代码
    # (包括全局配置和局部配置)
    git config --list
    • 为了方便观看,通常不会直接查看全部,而是使用配置级别参数来查看某一级配置的所有配置项:

      bash 复制代码
      # 查看本地级 所有配置项
      git config --local --list
      
      # 查看全局级 所有配置项
      git config --global --list
      
      # 查看系统级 所有配置项
      git config --system --list
  • 查看某个特定配置项,如查看user.name:

    bash 复制代码
    # git config 配置项
    git config user.name

设置配置信息

bash 复制代码
# 语法:git config 配置项 配置项要配置的信息

# 例子:
	# 配置 配置项user.name 为 lxc
	git config user.name lxc

删除配置信息

使用参数--unset实现

bash 复制代码
# 语法: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

      bash 复制代码
      git config --global user.name lxc
      git config --global user.email www.lxc.com
    • 在特定某个Git仓库又要配置其他用户信息(user.name为lrd user.email为www.lrd.com

      bash 复制代码
      git config --local user.name lrd
      git config --local user.email www.lrd.com

默认编辑器

默认编辑器指的是Git默认使用的文本编辑器(例如,vim、nano、emacs 等),每当Git需要你编辑提交你的信息或合并冲突时,它将调用这个编辑器。

而这个默认编辑器我们可以通过git config进行修改成其他的编辑器。

  • core.editor:默认编辑器

  • 配置默认编辑器

    bash 复制代码
    # 配置默认编辑器为nano
    git config core.editor nano

默认合并工具和差异比较工具

  • merge.tool:指定 Git 合并时使用的工具。
  • diff.tool:指定 Git 比较文件差异时使用的工具。
bash 复制代码
# 全局 均配置为 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等

例子

bash 复制代码
# 为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 系统)之间的换行符差异
    • 可配属性:
      *

      true:在 Windows 上,Git 会自动将 CRLF(回车换行)转换为 LF(换行)存储,并且在检出时会将 LF 转换回 CRLF。

      bash 复制代码
      git config --global core.autocrlf true
      • input:仅在提交时将 CRLF 转换为 LF,但检出时不做转换。
      • false:不做任何转换,保持原样。

配置推送的默认行为

  • push.default:配置 git push 的默认行为。常见的选项包括:
    • 可配属性:
      • simple:仅推送当前分支到与远程对应的分支。
      • matching:推送所有名称匹配的分支。
      • current:推送当前分支到远程。
      • upstream:推送当前分支到其上游分支。
相关推荐
和你一起去月球3 小时前
TypeScript - 函数(下)
javascript·git·typescript
我不是程序猿儿3 小时前
【GIT】TortoiseGit的变基(Rebase)操作
git
yyycqupt10 小时前
git使用(一)
git
Kkooe14 小时前
GitLab|数据迁移
运维·服务器·git
Beekeeper&&P...14 小时前
git bash是什么,git是什么,git中的暂存区是什么,git中的本地仓库是什么,git中工作目录指的是什么
开发语言·git·bash
Stara051119 小时前
Git推送+拉去+uwsgi+Nginx服务器部署项目
git·python·mysql·nginx·gitee·github·uwsgi
lsswear19 小时前
GIT 操作
git
勋勋勋勋小勋勋19 小时前
git分支合并某一次提交
git
PandaCave21 小时前
git常用命令以及注意事项总结
git