章节 ▾ 第二版

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 文件:仅针对该单个仓库。你可以使用 --local 选项强制 Git 从该文件读取和写入,但这实际上是默认行为。不出所料,为了使此选项正常工作,你需要在 Git 仓库的某个位置。

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

在 Windows 系统上,Git 会在 $HOME 目录(对于大多数人是 C:\Users\$USER)中查找 .gitconfig 文件。它也仍然会查找 [path]/etc/gitconfig,尽管它是相对于 MSys 根目录的,即你在 Windows 系统上运行安装程序时决定安装 Git 的位置。如果你使用的是 2.x 或更高版本的 Git for Windows,在 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 选项执行该命令。

许多图形界面工具在首次运行时会帮助你完成此操作。

你的编辑器

现在你的身份已设置好,你可以配置默认的文本编辑器,当 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 命令中查找如何为 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
scroll-to-top