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 相关的 Visual Studio 设置,但不存储在任何 Git 配置文件中。 只能在 Visual Studio 中查看和修改这些设置。 其中一个设置的示例是 Visual Studio 克隆存储库的默认文件夹路径。

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

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

先决条件

类别 要求
项目访问权限 项目的成员。
权限 - 查看私有项目中的代码:至少要具有基本访问权限。
- 克隆或贡献专用项目中的代码:必须是参与者安全组的成员或者具有项目中的相应权限。
- 设置分支或存储库权限:管理分支或存储库的权限 权限。
- 更改默认分支:对存储库具有编辑策略权限。
- 导入存储库:必须是项目管理员安全组的成员,或者将 Git 项目级别创建存储库权限设置为允许。 有关详细信息,请参阅设置 Git 存储库权限
服务 已启用存储库
工具 可选。 使用 az repos 命令:Azure DevOps CLI

注释

在公共项目中,具有 利益干系人 访问权限的用户具有对 Azure Repos 的完全访问权限,包括查看、克隆和参与代码。

类别 要求
项目访问权限 项目的成员。
权限 - 查看代码:至少需要具有基本访问权限。
- 克隆或贡献代码:贡献者安全组的成员或项目中的相应权限。
服务 已启用存储库

浏览 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(默认值)

拉取时重新设置本地分支的基

在拉取时,可以选择对本地分支进行变基,以便将本地分支中的更改依次应用在远程分支的历史记录之上。

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

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

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

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

有效值为:

  • 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 凭据管理器 作为帮助程序。
  • 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 命令。 Remotes窗格仅在存储库范围内可用。

克隆远程存储库时,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

启用此设置后,您可以推送更改,从而覆盖远程分支中的工作,前提是自上次拉取以来没有其他人推送到远程分支。

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

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

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

    显示用于在 Visual Studio 的“选项”对话框中启用推送强制的复选框的屏幕截图。

打开 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 提供了一种在存储库根目录添加或编辑 gitignoregitattributes 文件的快速方法。

只有在存储库层级才能添加或编辑 gitignore 文件或 gitattributes 文件的选项。

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

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

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

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

后续步骤