首页/开发/Git 与协作速查/git config 配置读写与常用项
Git 基础与命令88 条

git config 配置读写与常用项

读写 Git 配置的入口命令:管理提交身份、编辑器、换行符与别名等,支持 local、global、system 三级作用域,可用 --show-origin 追踪配置来源。

Git 与协作速查开发更新于 2026-10-13

git config 是什么

git config 是读写 Git 配置的唯一入口。配置以「节.键=值」的形式保存,覆盖提交身份、默认分支、编辑器、换行符处理、别名等行为。它既能写也能查,配合 --list 与 --show-origin 可以看清最终生效的值来自哪个文件,是排查「配置怎么不生效」的第一站。

三级作用域

配置分三级:system 作用于整台机器、global 作用于当前用户、local 只作用于当前仓库。同名键按 local 覆盖 global、global 覆盖 system 的顺序生效。这既是同一台机器上不同仓库能使用不同提交身份的原因,也是仓库里改过的值会盖住你全局偏好的原因。

基本信息

适用平台Linux / macOS / Windows(Git 2.x)
语法git config [选项] <键> [<值>]
写入层级默认写 local;--global 写用户级;--system 写机器级
常用键user.name、user.email、init.defaultBranch、core.editor、pull.rebase
别名alias.<名字> 定义短命令
来源查看--list --show-origin 显示每个值的文件出处

典型使用场景

  • 首次安装:设置 user.name 与 user.email,让提交能归属到账号
  • 项目差异:在仓库内单独设置提交身份或换行符策略
  • 定义别名:把常用长命令缩成 git st、git lg 这类短命令
  • 统一默认分支:用 init.defaultBranch 让新仓库默认叫 main
  • 复现环境:用 --list --show-origin 导出机器上的有效配置
  • 排查异常:确认某个键的有效值到底来自哪一层

常用示例

常用示例
git config --global user.name zhangsan              # 设置提交身份
git config --global user.email zhangsan@example.com  # 与平台账号保持一致
git config --get user.email                          # 读取单个键的有效值
git config --list --show-origin | less               # 查看全部配置及来源文件
git config --global alias.st status                  # 定义别名 git st
git config --local core.autocrlf false               # 只对当前仓库设置换行符策略
git config --unset alias.st                          # 删除某个键
git config --edit                                    # 手工编辑当前层配置文件

常用配置项

键作用建议取值
user.name提交中显示的作者名与平台显示名一致
user.email提交中的作者邮箱必须与账号邮箱一致
init.defaultBranch新仓库的初始分支名main
core.editor写提交信息时调用的编辑器按使用习惯填写
pull.rebasepull 时的默认集成方式团队统一约定后再设
core.autocrlf换行符自动转换策略按平台与团队约定
alias.<名字>自定义命令别名只在本机生效
设置前先用 git config --get 或 --list --show-origin 看现值,可以避免覆盖他人维护的仓库级配置,也能省掉事后排查冲突的时间。
user.email 与平台账号不一致时,提交无法归属到你的账号,贡献统计与评审指派都会出现异常,多账号环境下尤其容易搞混。
local 配置只保存在当前仓库的 .git/config 中,换电脑或重新克隆后不会跟随,需要重配;需要跨项目共享的偏好应该写进 global。
别名只影响你自己的命令行,不会随仓库分发。团队想统一命令口径要靠文档或脚本,不能依赖别人也配了同样的 alias。

什么时候该写哪一层

判断标准是生效范围:只影响你这台机器上所有仓库的偏好写 global;只影响某个项目的策略,例如换行符处理或提交身份,写 local;需要整机统一、而且你有管理员权限时才用 system。动手前先 git config --show-origin 看现值来自哪一层,才知道该覆盖谁。

配置不生效的排查顺序

  • 用 --list --show-origin 找出这个键的全部来源与文件路径
  • 确认环境变量有没有临时覆盖配置文件里的值
  • 确认执行命令时有没有用 -c 传入一次性配置
  • 确认当前仓库是否用 local 覆盖了 global 的设置
配置文件本身就是纯文本,可以直接编辑:git config --edit 打开当前层,加 --global 则打开用户级文件。改完用 --list 复核一遍,比在命令行里逐个试参数更直接。

易错点

  • user.email 与平台账号不一致时,提交无法归属到你的账号,贡献统计会异常
  • 仓库级 local 配置只对当前仓库生效,换电脑后不会跟随,需要重新配置
  • 服务器多账号共用时用 --global 容易互相覆盖,服务账号更适合使用仓库级配置
  • 环境变量(如 GIT_AUTHOR_NAME)会临时覆盖配置文件,排查时不要只看配置文件

数据来源与参考

  • Pro Git 2nd Edition · 1.6 初次运行 Git 前的配置
  • Git 官方文档:git-config(git-scm.com/docs/git-config)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌