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

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 Visual Studio 2019 - Git 菜单 Visual Studio 2019 - 团队资源管理器 Git 命令行

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

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

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

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

    Visual Studio 2019 版本 16.8 及更高版本提供 Git 版本控制体验,同时保留团队资源管理器 Git 用户界面。 要使用团队资源管理器,请从菜单栏中取消选中“工具”>“选项”>“预览功能”>“新 Git 用户体验”。 可以互换使用任一界面中的 Git 功能。

  • 要在 Visual Studio 中配置 Git 设置,请从团队资源管理器中选择“设置”,以打开“设置”视图。

  • 在“设置”视图中,选择“全局设置”以查看适用于所有存储库的设置,或选择“存储库设置”以查看适用于当前 Visual Studio 项目存储库的设置。

    除非在本地存储库的根文件夹中运行命令,否则 git config --list 输出不包括本地 Git 配置文件设置。

    系统 Git 配置文件设置适用于计算机上的所有用户和存储库。 要查看这些设置,请运行:

    git config --list --system
    

    全局 Git 配置文件设置适用于当前用户及其存储库。 要查看这些设置,请运行:

    git config --list --global
    

    本地 Git 配置文件设置适用于本地存储库。 要查看这些设置,请在存储库的根文件夹中运行以下命令。

    git config --list --local
    

    修改 Git 配置文件设置

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

  • 姓名和电子邮件
  • 在提取期间删除远程分支
  • 拉取时变基本地分支
  • 加密网络提供程序
  • 差异和合并工具
  • 姓名和电子邮件

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

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

    Visual Studio 2022 Visual Studio 2019 - Git 菜单 Visual Studio 2019 - 团队资源管理器 Git 命令行

    要在本地 Git 配置文件中设置用户名和电子邮件,请在本地存储库的根文件夹中运行以下命令。

    git config user.name "<user name>"
    git config user.email "<email>"
    

    默认情况下,此命令写入本地 Git 配置文件。 要写入另一个文件,请传递以下选项之一以写入文件:--system--global--file <filepath>。 例如,要写入当前用户的全局 Git 配置文件,请运行:

    git config --global user.name "Jamal Hartnett"
    git config --global user.email "jamal@fabrikam.com"
    

    在提取期间删除远程分支

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

    Visual Studio 2022 Visual Studio 2019 - Git 菜单 Visual Studio 2019 - 团队资源管理器 Git 命令行

    “在提取期间删除远程分支”设置对应于 git config fetch.prune 命令。 可以在全局范围或存储库范围内指定此设置。 要使所有存储库的远程跟踪分支列表保持干净和最新,建议在全局级别启用此选项。

    在团队资源管理器中,选择“设置”以打开“设置”视图。 然后选择“全局设置”,编辑当前用户的“在提取期间删除远程分支”选项。

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

    有效值是:

  • True(推荐)
  • False
  • Unset(默认值)
  • “拉取时变基本地分支”设置对应于 git config pull.rebase 命令。 可以在全局范围或存储库范围内指定此设置。

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

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

    有效值是:

  • True:提取后,将当前分支变基到远程分支顶部。
  • False:将远程分支合并到当前分支。
  • Merges:在不平展本地创建的合并提交的情况下变基。
  • Unset(默认值):除非在 Git 配置文件中另行指定,否则将远程分支合并到当前分支。
  • “拉取时变基本地分支”设置对应于 git config pull.rebase 命令。 可以在全局范围或存储库范围内指定此设置。

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

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

    有效值是:

  • True:提取后,将当前分支变基到远程分支顶部。
  • False:将远程分支合并到当前分支。
  • Merges:在不平展本地创建的合并提交的情况下变基。
  • Unset(默认值):除非在 Git 配置文件中另行指定,否则将远程分支合并到当前分支。
  • “拉取时变基本地分支”设置对应于 git config pull.rebase 命令。 可以在全局范围或存储库范围内指定此设置。

    在团队资源管理器中,选择“设置”以打开“设置”视图。 然后选择“全局设置”,以编辑“拉取时变基本地分支”选项。

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

    有效值是:

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

    git config [--local|--global|--system] pull.rebase [true|false|interactive|preserve]
    

    有效值是:

  • true:提取后将当前分支变基到上游分支顶部。
  • false:将当前分支合并到上游分支。
  • interactive:在交互模式中变基。
  • preserve:在不平展本地创建的合并提交的情况下变基。
  • 加密网络提供程序

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

    Visual Studio 2022 Visual Studio 2019 - Git 菜单 Visual Studio 2019 - 团队资源管理器 Git 命令行

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

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

    有效值是:

  • OpenSSL:将 OpenSSL 用于 TLS 和 SSL 协议。
  • Secure Channel:将安全通道用于 TLS 和 SSL 协议。 安全通道是本机 Windows 解决方案,其中包含一组安全协议,这些协议通过加密提供标识身份验证和安全保密的通信。
  • Unset(默认值):如果取消设置此设置,则加密网络提供程序默认为 OpenSSL。
  • “加密网络提供程序”设置对应于 git config http.sslBackend 命令。 此设置仅在全局范围内可用。

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

    有效值是:

  • OpenSSL:将 OpenSSL 用于 TLS 和 SSL 协议。
  • Secure Channel:将安全通道用于 TLS 和 SSL 协议。 安全通道是本机 Windows 解决方案,其中包含一组安全协议,这些协议通过加密提供标识身份验证和安全保密的通信。
  • Unset(默认值):如果取消设置此设置,则加密网络提供程序默认为 OpenSSL。
  • “加密网络提供程序”设置对应于 git config http.sslBackend 命令。 此设置仅在全局范围内可用。

    在团队资源管理器中,选择“设置”以打开“设置”视图。 然后选择“全局设置”,编辑当前用户的“加密网络提供程序”选项。

    有效值是:

  • OpenSSL:将 OpenSSL 用于 TLS 和 SSL 协议。
  • Secure Channel:将安全通道用于 TLS 和 SSL 协议。 安全通道是本机 Windows 解决方案,其中包含一组安全协议,这些协议通过加密提供标识身份验证和安全保密的通信。
  • Unset(默认值):如果取消设置此设置,则加密网络提供程序默认为 OpenSSL。
  • “凭据帮助程序”设置对应于 git config credential.helper 命令。 此设置仅在全局范围内可用。

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

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

  • GCM for Windows:使用 Git Credential Manager for Windows 作为帮助程序。
  • GCM Core:使用 Git Credential Manager Core 作为帮助程序。
  • Unset(默认值):如果取消设置此设置,则使用系统配置中设置的凭据帮助程序。 从 Git for Windows 2.29 起,默认凭据帮助程序为 GCM Core
  • “凭据帮助程序”设置对应于 git config credential.helper 命令。 此设置仅在全局范围内可用。

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

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

  • GCM for Windows:使用 Git Credential Manager for Windows 作为帮助程序。
  • GCM Core:使用 Git Credential Manager Core 作为帮助程序。
  • Unset(默认值):如果取消设置此设置,则使用系统配置中设置的凭据帮助程序。 从 Git for Windows 2.29 起,默认凭据帮助程序为 GCM Core
  • store:存储在纯文本文件 .git-credentials 中的凭据,或使用 --file 选项指定其他文件。
  • 有关设置凭据帮助程序的详细信息,请参阅 Git 工具 - 凭据存储credential.helper

    差异和合并工具

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

    Visual Studio 2022 Visual Studio 2019 - Git 菜单 Visual Studio 2019 - 团队资源管理器 Git 命令行

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

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

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

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

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

  • Visual Studio
  • None(默认值)
  • 要配置其他差异和合并工具设置,请使用 Git 命令行

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

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

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

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

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

  • Visual Studio
  • None(默认值)
  • 要配置其他差异和合并工具设置,请使用 Git 命令行

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

    在团队资源管理器中,选择“设置”以打开“设置”视图。 然后选择“全局设置”以编辑当前用户的差异和合并工具设置。

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

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

  • Visual Studio
  • None(默认值)
  • 要配置其他差异和合并工具设置,请使用 Git 命令行

    打开命令提示符,并运行:

    git config --global diff.tool <diff tool>
    git config --global merge.tool <merge tool>
    

    要获取有效差异工具的列表,请运行:git difftool --tool-help,要获取有效合并工具的列表,请运行:git mergetool --tool-help

    有关差异和合并工具选项的详细信息,请参阅 diff.toolmerge.tool

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

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

    Visual Studio 2022 Visual Studio 2019 - Git 菜单 Visual Studio 2019 - 团队资源管理器

    在命令行上,导航到本地存储库的根文件夹,然后运行以下命令以添加名为 upstream 的新远程库。 将 <clone URL> 替换已创建分支的存储库的 Git 克隆 URL

    git remote add upstream <clone URL>
    

    例如,git remote add upstream https://fiber-teams@dev.azure.com/fiber-teams/FiberTests/_git/FiberTests 将添加 upstream 别名。

    要编辑现有 upstream 别名,请运行以下命令:

    git remote set-url upstream <clone URL>
    

    为方便起见,可以在 Git 命令中使用 originupstream 别名,而不是其相应的 URL。

    有关配置远程库的详细信息,请参阅 git remote

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

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

  • 默认存储库位置
  • 打开存储库时,关闭未在 Git 下且打开的解决方案
  • 支持从第三方源下载作者图像
  • 默认情况下合并后提交更改
  • 启用 push --force-with-lease
  • 打开 Git 存储库时在解决方案资源管理器中打开文件夹
  • 打开 Git 存储库时自动加载解决方案
  • 通过双击或按 Enter 键自动签出分支
  • 编辑 Git 忽略文件和属性文件
  • 有关如何访问 Visual Studio Git 相关设置的详细信息,请参阅浏览 Git 设置。 接下来,我们讨论如何编辑上述每个 Visual Studio Git 相关设置。

    默认存储库位置

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

    Visual Studio 2022 Visual Studio 2019 - Git 菜单 Visual Studio 2019 - 团队资源管理器 Git 命令行

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

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

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

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

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

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

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

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

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

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

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

  • 选中此复选框后,Visual Studio 发出的所有 git merge 命令都与 --commit 选项一起运行。
  • 取消选中此复选框后,Visual Studio 发出的所有 git merge 命令都与 --no-commit --no-ff 选项一起运行。
  • 有关这些合并选项的详细信息,请参阅 --commit 和 --no-commit--no-ff

    Visual Studio 2022 Visual Studio 2019 - Git 菜单 Visual Studio 2019 - 团队资源管理器 Git 命令行

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Visual Studio 2022 Visual Studio 2019 - Git 菜单 Visual Studio 2019 - 团队资源管理器 Git 命令行

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

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

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

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

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

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

  •