章节 ▾ 第二版

1.6 开始 - 首次运行 Git 前的配置

首次运行 Git 前的配置

既然你已经在系统上安装了 Git,接下来你需要做一些事情来定制你的 Git 环境。这些事情只需要在任何一台计算机上做一次;它们会在升级后保留。你也可以通过再次运行命令随时更改它们。

Git 提供了一个名为 git config 的工具,它允许你获取和设置控制 Git 外观和操作所有方面的配置变量。这些变量可以存储在三个不同的位置:

  1. [path]/etc/gitconfig 文件:包含应用于系统上所有用户及其所有仓库的值。如果你向 git config 传递 --system 选项,它会专门从这个文件读取和写入。由于这是一个系统配置文件,你需要管理员或超级用户权限才能更改它。

  2. ~/.gitconfig~/.config/git/config 文件:专门针对你这个用户的值。你可以通过传递 --global 选项使 Git 专门读取和写入这个文件,这会影响你在此系统上处理的_所有_仓库。

  3. 你当前正在使用的仓库的 Git 目录(即 .git/config)中的 config 文件:专门针对该单个仓库。你可以强制 Git 使用 --local 选项读取和写入此文件,但这实际上是默认值。不出所料,你需要位于 Git 仓库中的某个位置才能使此选项正常工作。

每个级别都会覆盖前一个级别中的值,因此 .git/config 中的值会覆盖 [path]/etc/gitconfig 中的值。

在 Windows 系统上,Git 在 $HOME 目录(对于大多数人来说是 C:\Users\$USER)中查找 .gitconfig 文件。它仍然会查找 [path]/etc/gitconfig,尽管它是相对于 MSys 根目录的,即你在 Windows 系统上运行安装程序时决定安装 Git 的位置。如果你使用的是 Git for Windows 的 2.x 或更高版本,Windows XP 上还有一个系统级配置文件位于 C:\Documents and Settings\All Users\Application Data\Git\config,Windows Vista 及更高版本则位于 C:\ProgramData\Git\config。此配置文件只能由管理员通过 git config -f <file> 更改。

你可以使用以下命令查看所有设置以及它们的来源:

$ git config --list --show-origin

你的身份

安装 Git 后,你应该做的第一件事是设置你的用户名和电子邮件地址。这很重要,因为每个 Git 提交都使用此信息,并且它会不可变地烘焙到你开始创建的提交中。

$ git config --global user.name "John Doe"
$ git config --global user.email johndoe@example.com

同样,如果你传递了 --global 选项,则只需执行一次,因为 Git 总是会为该系统上的用户使用该信息。如果你想为特定项目使用不同的名称或电子邮件地址来覆盖此设置,可以在该项目中运行不带 --global 选项的命令。

许多 GUI 工具会在你第一次运行它们时帮助你完成此操作。

你的编辑器

设置好身份后,你可以配置 Git 需要你键入消息时将使用的默认文本编辑器。如果未配置,Git 会使用你系统的默认编辑器。

如果你想使用不同的文本编辑器,例如 Emacs,你可以执行以下操作:

$ git config --global core.editor emacs

在 Windows 系统上,如果你想使用不同的文本编辑器,必须指定其可执行文件的完整路径。这可能会因你的编辑器打包方式而异。

对于流行的编程编辑器 Notepad++,你可能希望使用 32 位版本,因为在撰写本文时,64 位版本不支持所有插件。如果你在 32 位 Windows 系统上,或者你在 64 位系统上有 64 位编辑器,你将键入以下内容:

$ git config --global core.editor "'C:/Program Files/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin"
注意

Vim、Emacs 和 Notepad++ 是开发人员在类 Unix 系统(如 Linux 和 macOS)或 Windows 系统上常用的流行文本编辑器。如果你正在使用其他编辑器或 32 位版本,请在git config core.editor commands中查找如何使用 Git 设置你喜欢的编辑器的具体说明。

警告

如果你不这样设置编辑器,你可能会在 Git 尝试启动它时遇到非常混乱的状态。Windows 系统上的一个示例可能包括 Git 启动编辑期间 Git 操作过早终止。

你的默认分支名称

默认情况下,当你使用 git init 创建新仓库时,Git 会创建一个名为 _master_ 的分支。从 Git 2.28 版开始,你可以为初始分支设置不同的名称。

要将 _main_ 设置为默认分支名称,请执行以下操作:

$ git config --global init.defaultBranch main

检查你的设置

如果你想检查你的配置设置,可以使用 git config --list 命令列出 Git 在该点可以找到的所有设置:

$ git config --list
user.name=John Doe
user.email=johndoe@example.com
color.status=auto
color.branch=auto
color.interactive=auto
color.diff=auto
...

你可能会多次看到键,因为 Git 从不同的文件(例如,[path]/etc/gitconfig~/.gitconfig)读取相同的键。在这种情况下,Git 会使用它看到的每个唯一键的最后一个值。

你还可以通过键入 git config <key> 来检查 Git 认为特定键的值是什么:

$ git config user.name
John Doe
注意

由于 Git 可能会从多个文件读取相同的配置变量值,因此你可能会遇到这些值之一的意外值,并且你不知道原因。在这种情况下,你可以向 Git 查询该值的_来源_,它会告诉你哪个配置文件对设置该值有最终决定权:

$ git config --show-origin rerere.autoUpdate
file:/home/johndoe/.gitconfig	false