Visual Studio 中的 Git 设置和首选项

在 Visual Studio 中,可以配置和查看常见的 Git 设置和首选项,例如姓名和电子邮件地址、首选差异工具与合并工具等。 可以在“Git 全局设置”页(适用于所有存储库)或“Git 存储库设置”页(适用于当前存储库)上的“选项”对话框中查看和配置这些设置和首选项。

可以配置两种类型的设置:

  • Git 设置 - 本部分中的设置对应于保存在 Git 配置文件中的 Git 设置。 这些设置可以在 Visual Studio 中查看和修改,但由 Git 配置文件管理。
  • Visual Studio 设置 - 本部分中的设置配置由 Visual Studio 管理的 Git 相关设置和首选项。

如何配置设置

  1. 若要在 Visual Studio 中配置 Git 设置,请从顶级 Git 菜单中选择“设置”。

    The Git menu with a callout to the Settings command.

  2. 选择“Git 全局设置”或“Git 存储库设置”以查看和配置全局级别或存储库级别设置。

    The navigation pane in the Options dialog box with a callout to Git settings.

  3. 可以配置多个常见的 Git 设置,如本文以下部分所述。 配置所需设置后,选择“确定”以保存更新后的设置。

    The display area of the Options dialog box with a callout to the OK button.

Git 设置

还可以配置和检查一些最常见的 Git 配置设置。 你可以在 Visual Studio 中查看和修改以下设置,即使它们是由 Git 配置文件管理的。

注意

Visual Studio“全局设置”中配置的 Git 设置对应于 Git 用户特定配置文件中的设置,而“存储库设置”中的设置对应于存储库特定配置文件中的设置。 有关 Git 配置的详细信息,请参阅关于自定义 Git 的 Pro Git 章节git-config 文档配置文件上的 Pro Git 引用。 若要配置未在 Visual Studio 中公开的 Git 设置,请使用 git config 命令将值写入配置文件:git config [--local|--global|--system] section.key value

姓名和电子邮件

你提供的名称和电子邮件将用作你进行的任何提交的提交者信息。 此设置在全局和存储库范围内可用,并对应于 git configuser.nameuser.email 设置。

  1. 在 Git 菜单中,转到“设置”。 若要在全局级别设置用户名和电子邮件,请转到“Git 全局设置”;若要在存储库级别设置用户名和电子邮件,请转到“Git 存储库设置” 。

  2. 提供用户名和电子邮件,然后选择“确定”以保存。

    Git Global settings pane in Options dialog box with a callout to username an email.

在提取期间删除远程分支

删除操作会删除不再存在于远程库上的远程跟踪分支,有助于将分支列表保持干净和最新。 此设置可在全局范围和存储库范围内使用,并对应于 git configfetch.prune 设置。

建议在全局级别将此选项设置为 True。 有效设置如下:

  • True(建议)
  • False
  • 取消设置(默认值)

下面是更改设置的方法:

  1. 在 Git 菜单中,转到“设置”。 若要在全局级别配置此选项,请转到“Git 全局设置”;若要在存储库级别配置此选项,请转到“Git 存储库设置” 。

  2. 将“在提取期间删除远程分支”设置为“True”(建议)。 选择“确定”以保存。

    Screenshot that shows 'Prune remote branches during fetch' highlighted and with 'True' selected from the drop-down.

拉取时变基本地分支

变基会保留当前分支中不属于上游分支的提交所做的更改,将当前分支重置为上游分支,然后应用保留的更改。 此设置可在全局范围和存储库范围内使用,并对应于 git configpull.rebase 设置。 有效设置如下:

  • True:提取后将当前分支变基到上游分支顶部。

  • False:将当前分支合并到上游分支。

  • 取消设置(默认值):除非在其他配置文件中指定,否则将当前分支合并到上游分支。

  • 交互式:在交互模式下变基。

  • 合并:在不平展本地创建的合并提交的情况下变基。

    注意

    在 Visual Studio 2022 版本 17.2 中,我们已将“保留”设置更改为“合并”设置,以匹配来自 Git 的最新更新。 因此,如果要将早期版本的 Visual Studio 与 Git 工具配合使用,用户界面可能会显示“保留”而不是“合并”。 但是,功能保持不变。

下面是更改设置的方法:

  1. 在 Git 菜单中,转到“设置”。 若要在全局级别配置此选项,请转到“Git 全局设置”;若要在存储库级别配置此选项,请转到“Git 存储库设置” 。

  2. 将“拉取时变基本地分支”设置为所需设置,然后选择“确定”以保存。

    Screenshot that shows 'Rebase local branch when pulling' highlighted and 'Merges' selected from the drop-down.

在 Visual Studio 中,不能将 pull.rebase 配置为“交互式”。 Visual Studio 没有交互式变基支持。 若要将 pull.rebase 配置为使用交互模式,请使用命令行。

加密网络提供程序

加密网络提供程序是全局范围的 Git 配置设置,用于配置要在运行时使用的 TLS/SSL 后端,并对应于 git confighttp.sslBackend 设置。 值包括:

  • OpenSSL:将 OpenSSL 用于 TLS 和 SSL 协议。
  • 安全通道:将安全通道 (schannel) 用于 TLS 和 SSL 协议。 Schannel 是本机 Windows 解决方案,可以访问 Windows Credential Store,从而允许企业范围的证书管理。
  • 取消设置(默认值):如果取消设置此设置,则 OpenSSL 为默认值。

下面是更改设置的方法:

  1. 在 Git 菜单中,转到“设置”。 请转到“Git 全局设置”以配置此设置。

  2. 将“加密网络提供程序”设置为所需的值,然后选择”确定”以保存。

    Screenshot that shows 'Cryptographic network provider' highlighted with 'OpenSSL' selected from the drop-down.

凭据帮助程序

当 Visual Studio 执行远程 Git 操作时,远程终结点可能会拒绝请求,因为它需要随请求一起提供凭据。 此时,Git 会调用凭据帮助程序,该帮助程序将返回执行该操作所需的凭据,然后重试请求。 所使用的凭据帮助程序对应于 git configcredential.helper 设置。 它在全局范围内提供,具有以下值:

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

下面是更改设置的方法:

  1. 在 Git 菜单中,转到“设置”。 请转到“Git 全局设置”以配置此设置。

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

    Screenshot showing the credential helper setting in the Options dialog box.

差异工具与合并工具

Git 将在首选工具中显示差异与合并冲突。 本部分中的设置对应于 git configdiff.toolmerge.tool 设置。 可以通过选择“使用 Visual Studio”,将 Git 配置为使用 Visual Studio 作为“Git 全局设置”和“Git 存储设置库”中的合并或差异工具。 若要配置其他差异与合并工具,请将 git configdiff.toolmerge.tool 开关一起使用。

Screenshot that shows the section to set default Diff tool and Merge tool in the Options dialog box.

Git 文件

可以使用“Git 存储库设置”范围中的“Git 文件”部分查看和编辑存储库的 gitignoregitattributes 文件。

Screenshot that shows the section to view and edit the Ignore and attributes files in your repository.

远程库

可以使用“Git 存储库设置”下的“远程库”窗格为存储库配置远程库。 此设置对应于 git remote 命令,并允许添加、编辑或删除远程库。

Screenshot showing the Git Remotes pane in the Options dialog box.

其他设置

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

Visual Studio 设置

以下设置管理 Visual Studio 中的 Git 相关首选项,由 Visual Studio 而不是 Git 配置文件管理。 本部分的所有设置都在“Git 全局设置”页中配置。

默认位置

“默认位置”配置克隆存储库的默认文件夹。

Screenshot showing the default location field in the Options dialog box.

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

默认情况下,当你切换到另一个存储库时,Visual Studio 将关闭任何打开的解决方案或文件夹。 这样做时,它还可能会基于你是选择打开 Git 存储库时在解决方案资源管理器中打开文件夹还是打开 Git 存储库时自动加载解决方案,来加载新存储库的解决方案或文件夹。 这使得打开的代码和打开的存储库保持一致性。 但是,如果解决方案与存储库不在同一文件夹根目录下,则在你切换到解决方案的存储库时,可能需要使解决方案保持打开状态。 可以使用此设置来完成此操作。 值包括:

  • :打开存储库时,当前打开的解决方案始终关闭

  • :打开存储库时,Visual Studio 检查当前解决方案是否在 Git 下。 如果不在,则解决方案将保持打开状态。

  • 始终询问(默认值):设置此选项后,可以通过每个打开的存储库的对话框来选择是保持当前解决方案打开还是将其关闭。

    Screenshot showing the close solution setting in the Options dialog box.

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

允许从第三方源下载作者图像是全局范围的 Visual Studio 特定设置。 选中后,从 Gravatar 图像服务下载作者图像(如果可用),并显示在提交和历史记录视图中。

Screenshot showing checkbox to enable download of author images from third-party source in the Options dialog box.

重要

为了在“提交”和“历史记录”视图中提供作者图像,该工具为存储在活动存储库中的作者电子邮件地址创建 MD5 哈希。 然后,此哈希将发送到 Gravatar,为以前注册过该服务的用户查找匹配的哈希值。 如果找到匹配项,则会从服务中检索到用户图像并显示在 Visual Studio 中。 未配置该服务的用户将返回随机生成的图像。 请注意,电子邮件地址不会由 Visual Studio 记录,也不会与 Gravatar 或其他任何第三方共享。

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

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

Screenshot showing the checkbox to commit changes after merge by default in the Options dialog box.

  • 选中此复选框后,Visual Studio 发出的 git merge 命令将与 --commit 选项一起运行。
  • 如果未选中,Visual Studio 发出的 git merge 命令将与 --no-commit --no-ff 选项一起运行。

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

启用 push --force-with-lease

启用后,此设置允许从 Visual Studio 运行 push --force-with-lease。 默认情况下,“启用 push --force-with-lease”处于禁用状态。

Screenshot showing the checkbox to enable push force with lease in the Options dialog box.

有关详细信息,请参阅 push --force-with-lease

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

使用 Visual Studio 打开或切换到 Git 存储库时,Visual Studio 会加载 Git 内容,以便从 IDE 中查看更改、提交、分支和管理存储库。 此外,Visual Studio 还会在解决方案资源管理器中加载存储库代码。 Visual Studio 将扫描存储库文件夹中的解决方案,CMakeLists.txt,或者它识别的其他任何视图文件,并在解决方案资源管理器中以列表形式显示。 可以从中选择要加载的解决方案或文件夹来查看目录内容。 关闭此复选框时,Visual Studio 不会打开解决方案资源管理器中的存储库文件夹。 这实质上允许你仅以 Git 存储库管理员身份打开 Visual Studio。 此设置默认启用。

Screenshot showing the checkbox to open folder when opening a Git repository in the Options dialog box.

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

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

Screenshot showing the checkbox to automatically load the solution when opening a Git repository in the Options dialog box.

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

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

Screenshot showing the checkbox to check out branches with double-click or Enter key in the Options dialog box.

重要

如果你对我们有任何建议,请告诉我们! 我们非常感激能够通过开发人员社区门户与你交流设计决策。