Visual Studio 中的 Git 设置和首选项

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

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

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

如何配置设置

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

    一个带有“设置”命令提示的 Git 菜单。

    带有“设置”命令标注的 Git 菜单。

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

    “选项”对话框中的导航窗格,其中标注了 Git 设置。

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

    “选项”对话框的显示区域,其中标注了“确定”按钮。

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 全局设置”窗格,其中有指向用户名和电子邮件的标注。

在提取期间修剪远程分支

清理会删除不再存在于远程的远程跟踪分支,以帮助你保持分支列表的整洁和更新。 此设置在全局范围和存储库范围内都可用,对应于 git configfetch.prune 设置。

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

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

下面介绍如何更改设置:

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

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

    屏幕截图显示突出显示了“提取期间删除远程分支”,并从下拉列表中选择了“True”。

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

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

  • True:提取后,在上游分支上重新设置当前分支的基数。

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

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

  • 交互:在交互模式下重新设置基。

  • 合并:在未平展本地创建的合并提交的情况下重新建立数据库。

    注释

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

下面介绍如何更改设置:

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

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

    显示突出显示“拉取时重新设置本地分支”和从下拉列表中选择的“合并”的屏幕截图。

无法在 Visual Studio 中配置为pull.rebase交互式。 Visual Studio 没有交互式存储库支持。 若要配置为 pull.rebase 使用交互式模式,请使用命令行。

加密网络服务商

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

  • OpenSSL:将 OpenSSL 用于 TLS 和 SSL 协议。
  • 安全通道:将 安全通道(schannel) 用于 TLS 和 SSL 协议。 Schannel 是原生 Windows 解决方案,可以访问 Windows 凭据存储,从而实现企业范围的证书统一管理。
  • 取消设置 (默认值):如果此设置未设置,则 OpenSSL 是默认值。

下面介绍如何更改设置:

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

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

    显示的屏幕截图中,“加密网络提供程序”被突出显示,从下拉列表中选择了“OpenSSL”。

凭据帮助程序

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

下面介绍如何更改设置:

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

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

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

比较和合并工具

Git 在您喜欢的工具中展示差异和合并冲突。 本节中的设置对应于 git configdiff.toolmerge.tool 设置。 可以通过选择“使用 Visual Studio”,将 Git 配置为在 Git 全局设置Git 存储库设置中将 Visual Studio 用作合并或差异工具。 若要配置其他差异和合并工具,请使用 git configdiff.toolmerge.tool 选项。

显示用于在“选项”对话框中设置默认差异工具和合并工具的部分的屏幕截图。

Git 文件

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

显示用于查看和编辑存储库中“忽略”和“属性”文件的分区的屏幕截图。

遥控器

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

显示“选项”对话框中的“Git 远程”窗格的屏幕截图。

其他设置

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

Visual Studio 设置

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

默认位置

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

显示“选项”对话框中的默认位置字段的屏幕截图。

默认分支名称

本地创建新存储库时,默认分支名称设置用于配置默认分支。 如果将其留空,则使用本地安装的 Git 的默认值。

显示“选项”对话框中的默认分支名称字段的屏幕截图。

此设置在 Visual Studio 17.14 及更高版本中可用。

在打开存储库时,关闭那些未受 Git 控制的已打开的解决方案。

默认情况下,当切换到其他存储库时,Visual Studio 会关闭任何打开的解决方案或文件夹。 这样做时,如果打开 Git 存储库时选择在解决方案资源管理器中打开文件夹 ,并在 打开 Git 存储库时自动加载解决方案,则它还可能会加载新存储库的解决方案或文件夹。 此设置维护打开代码和打开存储库之间的一致性。 但是,如果解决方案与存储库不在同一文件夹根目录中,则切换到其存储库时,可能需要使解决方案保持打开状态。 可以通过这个设置来实现这一点。 这些值如下所示:

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

  • :打开存储库后,Visual Studio 会检查当前解决方案是否位于 Git 下。 如果不是,解决方案仍旧未解决。

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

    显示“选项”对话框中关闭解决方案设置的屏幕截图。

自动激活多个存储库

通过此设置,可以控制 Visual Studio 是否一次性花费资源来激活多个存储库,还是一次仅激活单个存储库来优化工作流。 如果主要使用单个存储库,可以关闭此设置以提高 Visual Studio 的性能。 如果更改设置,则在下次加载解决方案之前,更改才会生效。

  • (默认值):Visual Studio 激活多个存储库。
  • :Visual Studio 仅激活一个存储库。

显示“选项”对话框中的“自动激活多个存储库”设置的屏幕截图。

请参阅 “处理多个存储库”。

启用从第三方来源下载作者图片

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

屏幕截图显示了用于在“选项”对话框中从第三方源下载作者图像的复选框。

重要

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

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

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

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

  • 选中时,git merge Visual Studio 发出的命令将与 --commit 选项一起运行。
  • 在未选中时,由 Visual Studio 发出的 git merge 命令将使用 --no-commit --no-ff 选项运行。

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

启用 push --force-with-lease

启用后,此设置允许你从 Visual Studio 中访问 push --force-with-lease 。 默认情况下, “启用推送 --force-with-lease ”处于禁用状态。

显示“选项”对话框中用于启用带租约推送强制功能的复选框的屏幕截图。

要了解更多信息,请参阅 push --force-with-lease

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

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

截图显示选项对话框中用于在打开 Git 存储库时打开文件夹的复选框。

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

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

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

使用双击或 Enter 键自动签出分支

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

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

重启时还原 Git 存储库窗口

如果选中,启动 Visual Studio IDE 时, Git 存储库 窗口将与其他永久窗口一起打开,前提是上次关闭 Visual Studio 时打开了该窗口。 窗口的位置保存在窗口布局中,因此,如果您移动或停靠了窗口,它将会在之前的位置打开。 清除该复选框以防止 Visual Studio 启动时打开窗口。 你仍然可以使用 “视图”、“ Git 存储库 ”菜单命令、按 Ctrl+0Ctrl+R按 Ctrl+Q 并在 Git 存储库上搜索来手动打开窗口。

如果定期使用此窗口,则启动 IDE 时自动打开它可能非常方便。 但是,在启动时打开和填充窗口可能会使用大量计算资源,因此,如果不主动使用它,则禁用此行为会更有效。

显示“选项”对话框中的“还原 Git 存储库”窗口设置的屏幕截图。

此设置在 Visual Studio 17.14 及更高版本中可用。 有关详细信息,请参阅 “浏览存储库”。

重要

如果你有建议,请告诉我们! 我们赞赏通过 开发人员社区 门户与你就设计决策进行互动的机会。