# 在 Git 中缓存GitHub凭据

如果要 使用 HTTPS 克隆 GitHub 存储库，建议使用 GitHub CLI 或 Git 凭据管理器（GCM）记住凭据。

> \[!TIP]
> 如果使用 SSH 克隆 GitHub 存储库，则可以使用 SSH 密钥而不是使用其他凭据进行身份验证。 有关设置 SSH 连接的信息，请参阅 [使用 SSH 连接到GitHub](/zh/authentication/connecting-to-github-with-ssh)。

## GitHub CLI

当你选择 `HTTPS` 作为 Git 操作的首选协议，并在系统提示你是否要使用 GitHub CLI 凭据向 Git 验证身份时回答“yes”，GitHub 将自动为你存储 Git 凭据。

1. [安装](http://gfffh3e2b966b640040f3s09bobfqpwpob6qqo.ffgi.yc2.bjmu.edu.cn/cli/cli#installation)GitHub CLI在 macOS、Windows 或 Linux 上。
2. 在命令行中，输入 `gh auth login`，然后按照提示进行操作。
   * 当系统提示输入 Git 操作的首选协议时，请选择 `HTTPS`。
   * 当系统询问是否想要使用 GitHub 凭据向 Git 进行身份验证时，请输入 `Y`。

有关使用 GitHub CLI身份验证的详细信息，请参阅 [`gh auth login`](http://gfffhf4b8d8d64fef492fs09bobfqpwpob6qqo.ffgi.yc2.bjmu.edu.cn/manual/gh_auth_login)。

## Git 凭据管理器

[Git 凭据管理器](http://gfffh3e2b966b640040f3s09bobfqpwpob6qqo.ffgi.yc2.bjmu.edu.cn/GitCredentialManager/git-credential-manager)（GCM）是安全地存储凭据并通过 HTTPS 连接到GitHub的另一种方法。 使用 GCM 时，无需手动 [创建和存储一个 personal access token](/zh/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens)，因为 GCM 代表你管理身份验证，包括 2FA（双因素身份验证）。

<div class="ghd-tool mac">

1. 使用 [Homebrew](http://gfffh460e0be0bd7e4740s09bobfqpwpob6qqo.ffgi.yc2.bjmu.edu.cn/) 安装 Git：

   ```shell
   brew install git
   ```

2. 使用 Homebrew 安装 GCM：

   ```shell
   brew install --cask git-credential-manager
   ```

对于 macOS，不需要运行 `git config`，因为 GCM 会自动为你配置 Git。

下次克隆需要身份验证的 HTTPS URL 时，Git 会提示你使用浏览器窗口登录。 你可能首先被要求授权一个 OAuth app。 如果您的帐户或组织要求[双重身份验证](/zh/authentication/securing-your-account-with-two-factor-authentication-2fa)，您还需要完成 2FA 验证。

> \[!TIP]
>
> 如果你是使用 Enterprise Managed Users的企业的成员，你的企业视图在屏幕顶部有“帐户名称管理的用户”标头栏。 在这种情况下，需要在 GCM 中本地禁用帐户筛选，以避免每次执行远程 Git 操作时都收到身份验证提示。 有关更多详细信息，请参阅 [`git-credential-manager` 存储库](http://gfffh3e2b966b640040f3s09bobfqpwpob6qqo.ffgi.yc2.bjmu.edu.cn/git-ecosystem/git-credential-manager/blob/main/docs/configuration.md#credentialgithubaccountfiltering)。
>
> 要配置 Git 凭据管理器，请运行以下命令：
>
> ```bash
> git config --global credential.gitHubAccountFiltering "false"
> ```

验证成功后，您的凭据存储在 macOS 密钥链中，每次克隆 HTTPS URL 时都会使用。 Git 不会要求您在命令行中再次键入凭据，除非您更改凭据。

</div>

<div class="ghd-tool windows">

1. 安装 Git for Windows，其中包括 Git Credential Manager (GCM)。 有关详细信息，请参阅其 [发布页面](http://gfffh3e2b966b640040f3s09bobfqpwpob6qqo.ffgi.yc2.bjmu.edu.cn/git-for-windows/git/releases/latest)上的 [Git for Windows 发行版信息](http://gfffh3e2b966b640040f3s09bobfqpwpob6qqo.ffgi.yc2.bjmu.edu.cn/git-for-windows/git/releases/latest)。

我们建议始终安装最新版本。 至少安装版本 2.29 或更高版本，这是为 GitHub 提供 OAuth 支持的第一个版本。

下次克隆需要身份验证的 HTTPS URL 时，Git 会提示你使用浏览器窗口登录。 你可能首先被要求授权一个 OAuth app。 如果您的帐户或组织要求[双重身份验证](/zh/authentication/securing-your-account-with-two-factor-authentication-2fa)，您还需要完成 2FA 验证。

> \[!TIP]
>
> 如果你是使用 Enterprise Managed Users的企业的成员，你的企业视图在屏幕顶部有“帐户名称管理的用户”标头栏。 在这种情况下，需要在 GCM 中本地禁用帐户筛选，以避免每次执行远程 Git 操作时都收到身份验证提示。 有关更多详细信息，请参阅 [`git-credential-manager` 存储库](http://gfffh3e2b966b640040f3s09bobfqpwpob6qqo.ffgi.yc2.bjmu.edu.cn/git-ecosystem/git-credential-manager/blob/main/docs/configuration.md#credentialgithubaccountfiltering)。
>
> 要配置 Git 凭据管理器，请运行以下命令：
>
> ```bash
> git config --global credential.gitHubAccountFiltering "false"
> ```

成功进行身份验证后，凭据将存储在Windows凭据管理器中，每次克隆 HTTPS URL 时都会使用。 Git 不会要求您在命令行中再次键入凭据，除非您更改凭据。

<br>

> \[!WARNING]
> 较旧版本的 Git for Windows附带了适用于 Windows 的 Git 凭据管理器。 此较旧的产品不再受支持，无法通过 OAuth 连接到GitHub。 建议升级到 [最新版本的 Git for Windows](http://gfffh3e2b966b640040f3s09bobfqpwpob6qqo.ffgi.yc2.bjmu.edu.cn/git-for-windows/git/releases/latest)。

> \[!WARNING]
> 如果在凭据管理器中缓存了Windows凭据不正确或过时的凭据，Git 将无法访问GitHub。 若要重置缓存的凭据，以便 Git 提示您输入凭据，请在用户帐户下，通过控制面板访问凭据管理器。 查找 GitHub 条目并将其删除。

</div>

<div class="ghd-tool linux">

对于 Linux，安装 Git 和 GCM，然后配置 Git 使用 GCM。

1. 从发行版的软件包系统中安装 Git。 说明将根据您运行的 Linux 的风格而有所不同。

2. 安装 GCM。 查看 [GCM 存储库中的说明](http://gfffh3e2b966b640040f3s09bobfqpwpob6qqo.ffgi.yc2.bjmu.edu.cn/git-ecosystem/git-credential-manager/blob/main/docs/install.md)，说明将根据运行的 Linux 的风格而有所不同。

3. 配置 Git 使用 GCM 有几个支持商店，您可以从中选择，因此请参阅 GCM 文档来完成设置。 有关详细信息，请参阅 [GCM Linux](http://gfffh6b4af8a403444c64s09bobfqpwpob6qqo.ffgi.yc2.bjmu.edu.cn/gcmcore-linuxcredstores)。

下次克隆需要身份验证的 HTTPS URL 时，Git 会提示你使用浏览器窗口登录。 你可能首先被要求授权一个 OAuth app。 如果您的帐户或组织要求[双重身份验证](/zh/authentication/securing-your-account-with-two-factor-authentication-2fa)，您还需要完成 2FA 验证。

> \[!TIP]
>
> 如果你是使用 Enterprise Managed Users的企业的成员，你的企业视图在屏幕顶部有“帐户名称管理的用户”标头栏。 在这种情况下，需要在 GCM 中本地禁用帐户筛选，以避免每次执行远程 Git 操作时都收到身份验证提示。 有关更多详细信息，请参阅 [`git-credential-manager` 存储库](http://gfffh3e2b966b640040f3s09bobfqpwpob6qqo.ffgi.yc2.bjmu.edu.cn/git-ecosystem/git-credential-manager/blob/main/docs/configuration.md#credentialgithubaccountfiltering)。
>
> 要配置 Git 凭据管理器，请运行以下命令：
>
> ```bash
> git config --global credential.gitHubAccountFiltering "false"
> ```

验证成功后，您的凭据存储在系统中，每次克隆 HTTPS URL 时都会使用。 Git 不会要求您在命令行中再次键入凭据，除非您更改凭据。

有关在 Linux 上存储凭据的更多选项，请参阅 Pro Git 中的[凭据存储](http://gfffh93f3dbdd6d654213s09bobfqpwpob6qqo.ffgi.yc2.bjmu.edu.cn/book/en/v2/Git-Tools-Credential-Storage)。

</div>

<br>

如需详细信息或报告 GCM 议题，请参阅官方 GCM 文档：[Git 凭据管理器](http://gfffh3e2b966b640040f3s09bobfqpwpob6qqo.ffgi.yc2.bjmu.edu.cn/GitCredentialManager/git-credential-manager)。