章节 ▾ 第二版

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 目录下的 config 文件(即 .git/config):特定于该单个仓库。你可以通过 --local 选项强制 Git 从此文件读取和写入,但实际上这就是默认行为。不出所料,要使此选项正常工作,你需要位于 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++ 是在 Linux 和 macOS 等类 Unix 系统或 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