Visual Studio 中的 Git 首选项和设置

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

Visual Studio 2019 | Visual Studio 2022

在 Visual Studio 中,可以查看和配置多个与 Git 相关的设置和首选项。 例如,可以设置提交元数据的名称和电子邮件地址,指定首选差异和合并工具,并设置存储库克隆的默认文件夹路径。

Visual Studio 中的 Git 设置和首选项分为两个主要类别:

  • 适用于当前用户的所有 Git 存储库的 Git 全局设置。

  • 适用于活动 Git 存储库的 Git 存储库设置。

在这些类别中,设置可以是:

  • Git 配置文件设置,可以在 Visual Studio 中、命令行上或通过编辑 Git 配置文件来查看和修改这些设置。 Git 配置文件设置的示例包括用户名、电子邮件地址和远程别名。 Git 将设置存储在系统、全局和本地 Git 配置文件中:

    • 系统 Git 配置文件设置适用于计算机上的所有用户和存储库。

    • 全局 Git 配置文件设置适用于当前用户的所有存储库。 全局设置优先于系统设置。

    • 本地 Git 配置文件设置适用于包含本地 Git 配置文件的本地存储库。 系统设置优先于全局设置。

  • Visual Studio Git 相关设置,即与 Git 相关但未存储在任何 Git 配置文件中的 Visual Studio 设置。 只能在 Visual Studio 中查看和修改这些设置。 其中一个设置的示例是 Visual Studio 克隆存储库的默认文件夹路径。

本文介绍如何执行以下操作:

  • 浏览 Git 设置
  • 修改 Git 配置文件设置
  • 修改 Visual Studio Git 相关设置

浏览 Git 设置

Visual Studio 2022 通过使用“Git”菜单、“Git 更改”和“解决方案资源管理器”中的上下文菜单提供 Git 版本控制体验。 Visual Studio 2019 版本 16.8 还提供了团队资源管理器 Git 用户界面。 有关详细信息,请参阅“Visual Studio 2019 - 团队资源管理器”选项卡。

  1. 要在 Visual Studio 中配置 Git 设置,请从菜单栏中选择“Git”>“设置”以打开“选项”视图。

    Visual Studio 的菜单栏中“设置”选项的屏幕截图。

  2. 在“选项”视图中,选择“Git 全局设置”以查看应用于所有存储库的设置。

    Visual Studio 的“选项”对话框中“Git 全局设置”的屏幕截图。

    或者,在“选项”视图中,选择“Git 存储库设置”>“常规”,以查看仅适用于当前 Visual Studio 项目存储库的设置。

    Visual Studio 的“选项”对话框中“Git 存储库设置”的屏幕截图。

修改 Git 配置文件设置

可以在 Visual Studio 中或通过直接编辑适用的 Git 配置文件来查看和编辑 Git 配置设置。 有关 Git 配置文件设置的详细信息,请参阅自定义 Gitgit-config 文档。 在以下部分中,我们讨论如何编辑列出的每个 Git 配置文件设置:

姓名和电子邮件

提交更改时,Git 会将你的用户名和电子邮件地址添加到提交元数据。 可以编辑 Git 将使用的用户名和电子邮件地址。

用户名和电子邮件设置在全局或存储库范围内可用。

在“Git”菜单中,选择“Git”>“设置”,然后选择“Git 全局设置”视图。 该视图包含当前用户的用户名和电子邮件设置。

Visual Studio 的“选项”对话框中“Git 全局设置”中的用户名和电子邮件设置的屏幕截图。

或者,选择“Git 存储库设置”>“常规”以编辑当前 Visual Studio 项目存储库的用户名和电子邮件设置。

在提取期间删除远程分支

可以指示 Git 在每次提取期间删除远程分支,以移除本地存储库中不再存在于相应远程存储库中的过时远程跟踪分支。

在“Git”菜单中,选择“Git”>“设置”,然后选择“Git 全局设置”视图。 该视图包含当前用户的“在提取期间删除远程分支”选项。

Visual Studio 的“选项”对话框中“Git 全局设置”中的“在提取期间删除远程分支”设置的屏幕截图。

或者,选择“Git 存储库设置”>“常规”,编辑当前 Visual Studio 项目存储库的“在提取期间删除远程分支”设置。

有效值是:

  • True(推荐)
  • False
  • Unset(默认值)

拉取时变基本地分支

可以选择在拉取时变基本地分支,以在远程分支历史记录的顶部重播本地分支中的更改。

“拉取时变基本地分支”设置对应于 git config pull.rebase 命令。 可以在全局范围或存储库范围内指定此设置。

在“Git”菜单中,选择“Git”>“设置”,然后选择“Git 全局设置”视图。 该视图包含当前用户的“拉取时变基本地分支”选项。

Visual Studio 的“选项”对话框中“Git 全局设置”中的变基设置的屏幕截图。

或者,选择“Git 存储库设置”>“常规”,以编辑当前 Visual Studio 项目存储库的“拉取时变基本地分支”选项。

有效值是:

  • True:提取后,将当前分支变基到远程分支顶部。
  • False:将远程分支合并到当前分支。
  • Merges:在不平展本地创建的合并提交的情况下变基。
  • Unset(默认值):除非在 Git 配置文件中另行指定,否则将远程分支合并到当前分支。

加密网络提供程序

可以将加密网络提供程序指定为 Git 将在运行时使用的 TLS/SSL 后端。

“加密网络提供程序”设置对应于 git config http.sslBackend 命令。 此设置仅在全局范围内可用。

在“Git”菜单中,选择“Git”>“设置”,然后选择“Git 全局设置”视图。 该视图包含当前用户的“加密网络提供程序”选项。

Visual Studio 中“加密网络提供程序”设置的屏幕截图,选中了“OpenSSL”。

有效值是:

  • OpenSSL:将 OpenSSL 用于 TLS 和 SSL 协议。
  • Secure Channel:将安全通道用于 TLS 和 SSL 协议。 安全通道是本机 Windows 解决方案,其中包含一组安全协议,这些协议通过加密提供标识身份验证和安全保密的通信。
  • Unset(默认值):如果取消设置此设置,则加密网络提供程序默认为 OpenSSL。

凭据帮助程序

当 Visual Studio 执行远程 Git 操作时,远程终结点可能会拒绝请求,因为它需要请求的凭据。 发生这种情况时,Git 会调用凭据帮助程序来获取必要的凭据,然后重试请求。 可以指定 Git 将使用的凭据帮助程序。

“凭据帮助程序”设置对应于 git config credential.helper 命令。 此设置仅在全局范围内可用。

  1. 在“Git”菜单中,选择“Git”>“设置”,然后选择“Git 全局设置”视图以配置此设置。

  2. 将“凭据帮助程序”设置为所需的值,然后选择“确定”以保存。

    Visual Studio 的“选项”对话框中“凭据帮助程序”设置的屏幕截图。

有效值是:

  • GCM for Windows:使用 Git Credential Manager for Windows 作为帮助程序。
  • GCM Core:使用 Git Credential Manager Core 作为帮助程序。
  • Unset(默认值):如果取消设置此设置,则使用系统配置中设置的凭据帮助程序。 从 Git for Windows 2.29 起,默认凭据帮助程序为 GCM Core

差异和合并工具

可以指定 Git 将用于显示差异或合并冲突的工具。

差异和合并工具设置对应于 git config diff.toolgit config merge.tool 命令。 可以将 Visual Studio 设置为合并或差异工具,或者从 Git 命令行配置其他差异和合并工具。 可以在全局范围或存储库范围内指定差异和合并工具设置。

  1. 在“Git”菜单中,选择“Git”>“设置”,然后选择“Git 全局设置”视图。 该视图包含差异和合并工具设置。

  2. 将差异和合并工具设置设为所需的值,然后选择“确定”进行保存。

    显示 Visual Studio 的“选项”对话框中差异和合并工具设置的屏幕截图。

    或者,选择“Git 存储库设置”>“常规”以编辑当前 Visual Studio 项目存储库的差异和合并工具设置。

有效的差异和合并工具包括:

  • Visual Studio
  • None(默认值)

要配置其他差异和合并工具设置,请使用 Git 命令行

远程库

可以使用“Git 存储库设置”下的“远程库”窗格为存储库添加、编辑或移除远程库。 此设置对应于 git remote add 命令。 “远程库”窗格仅在存储库范围内可用。

克隆远程存储库时,Git 将别名 origin 指定为克隆的远程存储库的 URL 简写形式。 为方便起见,可以为从中创建分支的存储库(称为上游存储库)再添加一个名为 upstream 的别名。 以下步骤介绍如何添加 upstream 别名。

要在 Visual Studio 中添加 upstream 别名,请执行以下步骤:

  1. 从菜单栏中选择“工具”>“选项”,打开“选项”窗口。 选择“源代码管理”>“Git 存储库设置”>“远程库”,然后选择“添加”,打开“添加远程库”对话框。

    Visual Studio“源代码管理”菜单的“Git 存储库设置”子菜单上“远程库”窗格中“添加”按钮的屏幕截图。

  2. 在“添加远程库”对话框中,添加名为 upstream 的新远程库,并输入已为其创建分支的存储库的 Git 克隆 URL。 然后选择“保存”。

    Visual Studio 中“添加远程库”对话框的屏幕截图。

其他设置

要查看所有其他 Git 配置设置,可以打开和查看 Git 配置文件本身,也可以运行 git config --list 来显示设置。


以下设置用于管理 Visual Studio 中与 Git 相关的首选项。 只能从 Visual Studio 中查看和编辑这些设置。

有关如何访问 Visual Studio Git 相关设置的详细信息,请参阅浏览 Git 设置。 接下来,我们讨论如何编辑上述每个 Visual Studio Git 相关设置。

默认存储库位置

可以设置 Visual Studio 将在其中克隆存储库的默认存储库文件夹。

“默认存储库位置”设置仅在全局范围内可用。

  1. 在“Git”菜单中,选择“Git”>“设置”,然后选择“Git 全局设置”视图。 该视图包含“默认存储库位置”设置。

  2. 设置默认存储库位置,然后选择“确定”进行保存。

    显示 Visual Studio 中“默认位置”字段的屏幕截图。

打开存储库时,关闭未在 Git 下且打开的解决方案

默认情况下,切换到其他存储库时,Visual Studio 会关闭 Git 存储库中任何打开的解决方案或文件夹。 “打开存储库时,关闭未在 Git 下且打开的解决方案”设置使打开的解决方案或文件夹与所选存储库保持一致。 但是,如果解决方案或文件夹不在存储库中,则在切换存储库时,可能需要使解决方案保持打开状态。 可以使用此设置来完成此操作。

提示

如果将此设置与打开 Git 存储库时自动加载解决方案配对,则 Visual Studio 将为要切换到的 Git 存储库打开解决方案。

“打开存储库时,关闭未在 Git 下且打开的解决方案”设置仅在全局范围内可用。

  1. 在“Git”菜单中,选择“Git”>“设置”,然后选择“Git 全局设置”视图以配置此设置。

  2. 设置默认存储库位置,然后选择“确定”进行保存。

    显示 Visual Studio 的“选项”对话框中“打开存储库时,关闭未在 Git 下且打开的解决方案”设置的屏幕截图。

有效值是:

  • Yes:切换存储库时,Visual Studio 关闭任何打开的解决方案。
  • No:切换存储库时,如果当前解决方案或文件夹不在 Git 下,则 Visual Studio 使解决方案或文件夹保持打开状态。
  • Always ask(默认值):切换存储库时,如果当前解决方案或文件夹不在 Git 下,则 Visual Studio 会询问是否要使当前解决方案保持打开状态。

支持从第三方源下载作者图像

启用后,Visual Studio 将从 Gravatar 图像服务下载作者图像,以便在提交和历史记录视图中显示。 如果尚未配置 Gravatar 图像,Gravatar 图像服务会返回随机生成的图像。

重要

为了在提交和历史记录视图中提供作者图像,Visual Studio 使用活动存储库中存储的作者电子邮件地址创建 MD5 哈希,并将该哈希发送到 Gravatar。 如果 Gravatar 找到具有匹配哈希的用户,Visual Studio 会检索并显示该用户的图像。 Microsoft 不会记录电子邮件地址,也不会将其与 Gravatar 或任何其他第三方共享。

“支持从第三方源下载作者图像”设置仅在全局范围内可用。

  1. 在“Git”菜单中,选择“Git”>“设置”,然后选择“Git 全局设置”视图。 该视图包含“支持从第三方源下载作者图像”设置。

  2. 选择是否支持从第三方源下载作者图像,然后选择“确定”进行保存。

    显示 Visual Studio“选项”对话框中“支持从第三方源下载作者图像”复选框的屏幕截图。

默认情况下合并后提交更改

启用“默认情况下在合并后提交更改”后,Git 在合并分支时自动创建新提交。

  • 选中此复选框后,Visual Studio 发出的所有 git merge 命令都与 --commit 选项一起运行。
  • 取消选中此复选框后,Visual Studio 发出的所有 git merge 命令都与 --no-commit --no-ff 选项一起运行。

有关这些合并选项的详细信息,请参阅 --commit 和 --no-commit--no-ff

“默认情况下在合并后提交更改”设置仅在全局范围内可用。

  1. 在“Git”菜单中,选择“Git”>“设置”,然后选择“Git 全局设置”视图。 该视图包含“默认情况下在合并后提交更改”设置。

  2. 选择默认情况下是否在合并后提交更改,然后选择“确定”进行保存。

    显示 Visual Studio“选项”对话框中“默认情况下在合并后提交更改”复选框的屏幕截图。

启用 push --force-with-lease

启用此设置后,可以推送远程分支中覆盖工作的更改(如果自上次拉取后没有其他人推送到远程分支)。

“启用 push --force-with-lease”选项对应于 push --force-with-lease 命令。 此设置仅在全局范围内可用。 默认情况下,“启用 push --force-with-lease”处于禁用状态。

  1. 在“Git”菜单中,选择“Git”>“设置”,然后选择“Git 全局设置”视图。 该视图包含“启用 push --force-with-lease”设置。

  2. 选择是否启用 push --force-with-lease,然后选择“确定”进行保存。

    显示 Visual Studio“选项”对话框中“启用 push force with lease”复选框的屏幕截图。

打开 Git 存储库时在解决方案资源管理器中打开文件夹

启用此设置后,在 Visual Studio 中打开 Git 存储库时,Visual Studio 会扫描存储库文件夹中的解决方案、CMakeLists.txt 或其他视图文件,并在解决方案资源管理器中将其显示为列表。 然后,可以加载解决方案或查看文件夹的内容。 默认情况下,此设置处于启用状态。

如果禁用此设置,则在 Visual Studio 中打开 Git 存储库时,Visual Studio 不会在解决方案资源管理器中打开存储库文件夹,而只是一个 Git 存储库管理器。

  1. 在“Git”菜单中,选择“Git”>“设置”,然后选择“Git 全局设置”视图以配置此设置。

  2. 选择是否启用“打开 Git 存储库时在解决方案资源管理器中打开文件夹”,然后选择“确定”进行保存。

    显示“选项”对话框中打开 Git 存储库时打开文件夹的复选框的屏幕截图。

打开 Git 存储库时自动加载解决方案

仅当已启用“打开 Git 存储库时在解决方案资源管理器中打开文件夹”时,“打开 Git 存储库时自动加载解决方案”设置才适用。 在 Visual Studio 中打开 Git 存储库时,如果后续文件夹扫描检测到存储库中只有一个解决方案,则 Visual Studio 会自动加载该解决方案。 如果关闭此设置,则解决方案资源管理器会在视图列表中显示存储库中的单个解决方案,但不会加载该解决方案。 默认情况下禁用此设置

  1. 在“Git”菜单中,选择“Git”>“设置”,然后选择“Git 全局设置”视图以配置此设置。

  2. 选择是否启用“打开 Git 存储库时自动加载解决方案”,然后选择“确定”进行保存。

    显示“选项”对话框中“打开 Git 存储库时自动加载解决方案”复选框的屏幕截图。

通过双击或按 Enter 键自动签出分支

“Git 存储库”窗口包含树结构中显示的分支列表。 选择一个分支以切换提交历史记录窗格,显示该分支的提交。 要签出分支,请右键单击以打开上下文菜单,然后选择“签出”。 启用“通过双击或按 Enter 键自动签出分支”设置后,可以通过双击或选择 Enter 键来签出分支并显示其提交。

  1. 在“Git”菜单中,选择“Git”>“设置”,然后选择“Git 全局设置”视图以配置此设置。

  2. 选择是否启用“通过双击或按 Enter 键自动签出分支”,然后选择“确定”进行保存。

    显示“选项”对话框中通过双击或按 Enter 键签出分支的复选框的屏幕截图。

编辑 Git 忽略文件和属性文件

Visual Studio 提供了一种在存储库根目录中添加或编辑 gitignoregitattributs 文件的快速方法。

用于添加或编辑 gitignoregitattributes 文件的选项仅在存储库范围内可用。

  1. 从“Git”菜单中选择“Git”>“设置”,然后选择“Git 存储库设置”>“常规”视图。 该视图包含用于编辑 gitignoregitattributes 文件的选项。

  2. 选择“编辑”,在 Visual Studio 编辑器窗口中打开忽略文件或属性文件。

    显示 Visual Studio 中忽略文件或属性文件的“编辑”按钮的屏幕截图。

有关如何配置 .gitignore.gitattributes 文件的信息,请参阅 gitignoregitattributes

后续步骤