如何检查是否已配置 Git 用户邮箱

GitGitBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

在这个实验中,你将学习如何查看已配置的 Git 用户邮箱地址。我们将探讨 Git 如何存储和获取这些信息,了解全局配置和本地配置之间的区别。

你将运行命令来显示当前的邮箱设置,明确检查全局配置,并了解在未设置邮箱时 Git 的行为。通过这个实践操作,你将了解 Git 如何关联提交信息,以及如何在不同的仓库中管理你的身份。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL git(("Git")) -.-> git/SetupandConfigGroup(["Setup and Config"]) git(("Git")) -.-> git/GitHubIntegrationToolsGroup(["GitHub Integration Tools"]) git/SetupandConfigGroup -.-> git/config("Set Configurations") git/GitHubIntegrationToolsGroup -.-> git/cli_config("Configure CLI") subgraph Lab Skills git/config -.-> lab-560116{{"如何检查是否已配置 Git 用户邮箱"}} git/cli_config -.-> lab-560116{{"如何检查是否已配置 Git 用户邮箱"}} end

运行 git config user.email

在这一步中,我们将探讨 Git 如何存储你的邮箱地址。Git 使用你的邮箱地址在提交历史中识别你。这对于追踪是谁做出了哪些更改非常重要,尤其是在与他人协作时。

我们之前在设置部分配置了一个全局邮箱地址。让我们看看 Git 是如何获取这些信息的。

打开你的终端并运行以下命令:

git config user.email

你应该会看到全局配置的邮箱地址:

[email protected]

这个命令告诉 Git 显示 user.email 配置项的值。当你运行 git config 而不指定 --global--local 时,Git 会按特定顺序检查配置:首先是本地(特定于仓库),然后是全局(特定于用户),最后是系统范围。由于到目前为止我们只设置了全局配置,所以它会显示全局值。

了解 Git 如何存储和获取像邮箱这样的配置项,对于自定义你的 Git 环境以及确保你的提交能正确关联到你至关重要。

检查全局与本地邮箱配置

在这一步中,我们将探讨 Git 全局配置和本地配置之间的区别,特别是针对 user.email 设置。

Git 允许你在不同级别配置设置:

  • 系统级别:适用于系统上的所有用户。
  • 全局级别:适用于系统上的特定用户(这是我们在设置中配置的)。
  • 本地级别:仅适用于当前的 Git 仓库。

本地配置会覆盖全局配置,而全局配置会覆盖系统配置。

首先,让我们使用 --global 标志显式检查全局邮箱配置:

git config --global user.email

你应该会看到和之前相同的邮箱地址:

[email protected]

现在,让我们尝试为上一个实验中创建的 my-time-machine 仓库设置一个 本地 邮箱地址。确保你仍然在 ~/project/my-time-machine 目录内。

cd ~/project/my-time-machine
git config user.email "[email protected]"

此命令仅为当前仓库(my-time-machine)设置 user.email。注意,这次我们没有使用 --global 标志。

现在,仍然在 my-time-machine 目录内,再次不带任何标志检查 user.email

git config user.email

你看到了什么?

[email protected]

它显示了本地邮箱地址!这表明在这个特定的仓库中,本地配置优先于全局配置。

如果你导航到 my-time-machine 目录之外,再次运行 git config user.email,它将显示全局邮箱地址,因为该仓库之外没有本地配置。

这种设置本地配置的功能非常有用。例如,你可以在个人项目中使用个人邮箱(全局配置),而在与工作相关的项目中使用工作邮箱(这些工作项目仓库的本地配置)。

使用未设置的邮箱进行测试

在这一步中,我们将了解当 Git 在本地级别没有配置 user.email,但在全局级别有配置时会发生什么。这将强化配置优先级的概念。

首先,确保我们位于 my-time-machine 目录中:

cd ~/project/my-time-machine

现在,我们将使用 --unset 标志取消设置本地的 user.email 配置:

git config --unset user.email

此命令会专门从本地仓库配置中移除 user.email 设置,不会影响全局配置。

让我们通过尝试获取本地配置来验证它是否已被移除:

git config --local user.email

你应该会看到一条错误消息,表明在本地级别未找到该配置项:

error: key 'user.email' not found

现在,仍然在 my-time-machine 目录中,再次不带任何标志检查 user.email

git config user.email

你预计会看到什么?由于本地配置已被取消设置,Git 应该会回退到全局配置。

[email protected]

正如预期的那样,它现在再次显示全局邮箱地址!这证实了当本地配置不存在时,Git 会使用全局配置。

这一步展示了 Git 配置的层级结构。Git 首先在本地级别查找设置。如果在本地未找到,它会查找全局级别,然后是系统级别。这允许你根据不同项目的需求进行灵活配置。

总结

在这个实验中,我们学习了如何使用 git config user.email 命令检查已配置的 Git 用户邮箱地址。我们探究了 Git 如何获取此信息,其优先级顺序为本地配置、全局配置,最后是系统配置。我们还使用 --global 标志显式检查了全局邮箱配置,了解了全局配置和本地配置级别之间的差异及其优先级。