Visual Studio 中的 Git 设置和首选项

在 Visual Studio 中,可以配置和查看常见的 Git 设置和首选项,例如姓名和电子邮件地址、首选差异和合并工具等。 可以通过在菜单栏上选择“Git> 设置”或“工具>”来查看和配置设置和首选项。

选项 ”窗格将打开到“ 所有设置>源代码管理>Git 设置” 部分,可在其中配置常规 Git 选项。 若要配置要应用于所有存储库的选项,请展开 “Git 全局配置 ”部分。 若要仅配置当前存储库的选项,请展开 “Git 存储库配置 ”部分。

选项 ”对话框将打开“ 源代码管理>Git 全局设置” 部分,可在其中配置要应用于所有存储库的选项。 若要仅配置当前存储库的选项,请展开 “Git 存储库设置” 部分。

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

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

如何配置设置

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

    Git 菜单的屏幕截图,其中突出显示了“设置”选项。

  1. 选项 ”窗格将打开“ 所有设置>源代码管理>Git 设置” 部分,该部分提供常规 Git 选项。

    • 若要查看和配置全局级存储库设置,请展开 “Git 全局配置 ”部分。
    • 对于存储库级设置,请展开 “Git 存储库配置 ”部分。

    “选项”窗格的屏幕截图,其中显示了 Git 设置下可用的部分。

  1. 选项 ”对话框将打开“ 源代码管理>Git 全局设置” 部分,可在其中配置要应用于所有存储库的选项。

    若要仅配置当前存储库的选项,请展开 “Git 存储库设置” 部分。

    “选项”对话框的屏幕截图,其中显示了源代码管理下可用的部分。

Git 设置

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

注释

全球 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 全局配置设置的屏幕截图,其中突出显示了用户名和电子邮件。

  1. 通过选择“Git>”打开“选项”对话框。

    • 若要在全局级别设置用户名和电子邮件,请展开 “Git 全局设置” 部分。

    • 若要在存储库级别设置用户名和密码,请展开“Git 存储库设置” 部分。

  2. “用户名电子邮件 ”选项设置为用户名和电子邮件地址,然后选择“ 确定”。

    “选项”对话框中“Git 全局设置”选项的屏幕截图,其中突出显示了用户名和电子邮件。

在提取期间修剪远程分支

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

以下值可用,其中,建议对全局级别设置使用 True

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

下面介绍如何更改此设置:

  1. 通过选择“Git>”打开“选项”窗格。

    • 若要在全局级别调整修剪,请展开 Git 全局配置 部分。

    • 若要在存储库级别调整修剪,请展开“Git 存储库配置 ”部分。

  2. 提取操作中将修剪远程分支选项设置为True(推荐)。

    显示“提取期间修剪远程分支”选项的屏幕截图,其中下拉列表中选择了“True”。

  1. 通过选择“Git>”打开“选项”对话框。

    • 若要在全局级别调整修剪,请展开 “Git 全局设置” 部分。

    • 若要在存储库级别调整修剪,请展开“Git 存储库设置” 部分。

  2. 提取期间修剪远程分支选项设置为True(推荐),然后选择确定

    显示“提取期间修剪远程分支”选项的屏幕截图,其中在下拉列表中选择了“True”。

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

Rebasing 会将当前分支中不在上游分支中的提交所做的更改暂时放置一边。 它将当前分支重置到上游分支,然后应用预留的更改。 此设置在全局范围和存储库范围内均可用,对应于 git configpull.rebase 设置。

以下值可用:

  • True:提取后,在上游分支上重新设置当前分支的基数。
  • False:将当前分支合并到上游分支。
  • 合并 (或 保留):重新保留,而不平展本地创建的合并提交。
  • 未设置(默认值):除非在其他配置文件中指定,否则将当前分支合并到上游分支。

注释

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

下面介绍如何更改此设置:

  1. 通过选择“Git>”打开“选项”窗格。

    • 若要在全局级别配置变基,请展开Git 全局配置部分。

    • 若要在存储库级别配置变基,请展开Git 存储库配置部分。

  2. 将拉取选项设置为 True 时,将 Rebase 本地分支 设置为 True (建议)。

    显示“拉取时重新设置本地分支”选项的屏幕截图,其中下拉列表中选择了“合并”。

  1. 通过选择“Git>”打开“选项”对话框。

    • 若要在全局级别配置变基,请展开“Git 全局设置” 部分。

    • 若要在存储库级别配置重新设置,请展开“Git 存储库设置” 部分。

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

    显示“拉取时重新设置本地分支”选项的屏幕截图,其中下拉列表中选择了“合并”。

加密网络服务商

加密网络提供程序是全局范围内的 Git 配置设置,用于配置运行时要使用的 TLS/SSL 后端。 此选项对应于 git confighttp.sslBackend 设置。

全局范围内提供以下值:

  • OpenSSL:将 OpenSSL 用于 TLS 和 SSL 协议。
  • 安全通道:将 安全通道(schannel) 用于 TLS 和 SSL 协议。 Schannel 是 Windows 的原生解决方案,它访问 Windows 凭据存储并启用企业级的证书管理。
  • 取消设置 (默认值):如果此设置未设置,则 OpenSSL 是默认值。

下面介绍如何更改此设置:

  1. 通过选择“Git>”打开“选项”窗格。

  2. “选项 ”窗格中,展开 “Git 全局配置 ”部分。

  3. 加密网络提供程序 选项设置为所需的值,然后选择“ 确定”。

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

  1. 通过选择“Git>”打开“选项”对话框。

  2. “选项 ”对话框中,展开 “Git 全局设置” 部分。

  3. 加密网络提供程序 选项设置为所需的值,然后选择“ 确定”。

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

凭据帮助程序

凭证助手是全局范围的 Git 配置设置。 当 Visual Studio 执行远程 Git操作时,远程端点可能会拒绝请求,因为请求需要提供凭据。 此时,Git 调用凭据帮助程序,该帮助程序返回执行作所需的凭据,然后重试请求。 使用的凭据帮助程序对应于 git configcredential.helper 设置。

全局范围内提供以下值:

  • GCM:使用 Git 凭据管理器 作为帮助程序。
  • 未设置 (默认值):如果选项未设置,将使用系统配置中指定的凭据帮助程序。

下面介绍如何更改此设置:

  1. 通过选择“Git>”打开“选项”窗格。

  2. “选项 ”窗格中,展开 “Git 全局配置 ”部分。

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

    显示下拉列表中选择了“GCM”的“凭据帮助程序”选项的屏幕截图。

  1. 通过选择“Git>”打开“选项”对话框。

  2. “选项 ”对话框中,展开 “Git 全局设置” 部分。

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

    显示下拉列表中选择了“GCM”的“凭据帮助程序”选项的屏幕截图。

启用提交图

“启用提交图”以提供更好的 Git 性能选项指示 Visual Studio 在本地存储库中生成提交图形文件,以便快速分析和排序提交。 提交图可以减少 Git 操作的延迟,并提高 Visual Studio 中存储库操作的性能。 有关详细信息,请参阅 使用提交图在 Visual Studio 中增强 Git 体验

注释

根据存储库的大小生成提交图可能需要几分钟时间。 在操作完成之前,您无法在 Visual Studio 中运行其他 Git 操作,例如抓取或拉取。

本地范围内提供以下值:

  • 正确
  • 错误
  • 取消设置 (默认值)

下面介绍如何配置此设置:

  1. 通过选择“Git>”打开“选项”窗格。

  2. “选项 ”窗格中,展开 “Git 存储库配置 ”部分。

  3. “启用提交关系图”选项设置为您所需的值,然后选择“确定”,以提高 Git 性能。

    显示本地存储库的“启用提交图以提高 Git 性能”选项的屏幕截图。

  1. 通过选择“Git>”打开“选项”对话框。

  2. “选项”对话框中,展开“Git 存储库设置”,>常规部分。

  3. “启用提交关系图”设置为 所需的值,然后选择“ 确定”,以提供更好的 Git 性能选项。

    显示本地存储库的“启用提交图以提高 Git 性能”选项的屏幕截图。

差异和合并工具

Git 在您喜欢的工具中展示差异和合并冲突。 配置对应于 git configdiff.toolmerge.tool 设置。 可以在全局范围和本地范围内指定差异工具和合并工具首选项。

下面介绍如何配置这些设置:

  1. 通过选择“Git>”打开“选项”窗格。

    • 若要在全局级别配置工具,请展开 “Git 全局配置 ”部分,然后滚动到 “工具” 组。

    • 若要在存储库级别配置工具,请展开“Git 存储库配置 ”部分,然后滚动到 “工具” 组。

  2. “差异工具”或“合并工具”选项的下拉列表中选择 Visual Studio

    显示“差异工具”和“合并工具”选项的屏幕截图,其中突出显示了“使用 Visual Studio”链接。

在全局级别配置工具后,值为 Visual Studio | 全局,对于当前存储库,则为 Visual Studio | 本地。 否则,该值为 “未设置 ”(默认值)。

  1. 通过选择“Git>”打开“选项”对话框。

    • 若要在全局级别配置工具,请展开 “Git 全局设置” 部分,然后滚动到 “工具” 组。

    • 若要在存储库级别配置工具,请展开“Git 存储库设置” 部分,然后滚动到 “工具” 组。

  2. 选择 “使用 Visual Studio”链接以选择比较工具合并工具选项。

    显示“差异工具”和“合并工具”选项的屏幕截图,其中“使用 Visual Studio”链接被着重显示。

在全局级别配置工具后,值为 Visual Studio | 全局,或在当前存储库中,值为 Visual Studio | 本地。 否则,该值为 None (默认值)。

若要配置其他差异和合并工具,请使用 git configdiff.toolmerge.tool 选项。

Git 文件

可以使用 Git 文件 选项查看和编辑本地存储库的 gitignoregitattributes 文件。

下面介绍如何使用这些设置:

  1. 通过选择“Git>”打开“选项”窗格。

  2. “选项 ”窗格中,展开 “Git 存储库配置 ”部分并滚动到 Git 文件 组。

  3. 若要添加 Ignore 文件.gitignore) 或 Attributes 文件.gitattributes),请选择 “添加 /.gitignore ”或 “添加 /.gitattributes”。

    Visual Studio 添加文件并将按钮标签更改为 “编辑 <文件名>”。

  4. 若要查看或编辑文件,请选择 “编辑 <文件名>”。

显示用于添加 gitignore 文件和编辑存储库中的 gitattributes 文件的部分的屏幕截图。

  1. 通过选择“Git>”打开“选项”对话框。

  2. “选项”对话框中,展开“Git 存储库设置常规”>部分。

  3. 若要添加 Ignore 文件.gitignore) 或 Attributes 文件.gitattributes),请选择“ 添加”。

    Visual Studio 添加文件并将按钮标签更改为 “编辑”。

  4. 若要查看或编辑 .gitignore.gitattributes 文件,请选择 “编辑”。

显示用于添加 gitignore 文件和编辑存储库中的 gitattributes 文件的部分的屏幕截图。

遥控器

可以使用 “远程 ”选项为本地存储库配置远程服务器。 可以添加和编辑遥控器,或是删除遥控器。 此设置对应于 git 远程 命令,并允许添加、编辑或删除远程组件。

下面介绍如何使用这些设置:

  1. 通过选择“Git>”打开“选项”窗格。

  2. “选项 ”窗格中,展开 “Git 存储库配置 ”部分,然后滚动到 “远程” 组。

    显示本地存储库的 Git 远程部分的屏幕截图。

  1. 通过选择“Git>”打开“选项”对话框。

  2. “选项”对话框中,展开“Git 存储库设置>部分。

    显示本地存储库的 Git 远程部分的屏幕截图。

该表列出了为存储库定义的远程集。

  • 若要添加更多远程,请选择“ 添加”。

  • 若要更新遥控器,请选择列表中的遥控器,然后选择编辑

  • 若要删除远程,请在列表中选择远程,然后选择“ 删除”。

其他设置

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

Visual Studio 设置

以下设置管理 Visual Studio 中的 Git 相关首选项,并由 Visual Studio 而不是 Git 配置文件管理。 大多数设置是在“选项”窗格的“>>Git 设置”部分中配置的。

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

默认位置

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

“选项”窗格中“默认位置”选项的屏幕截图。

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

默认分支名称

此设置为在本地创建的新存储库配置默认分支。 如果将值留空,则默认情况下,Visual Studio 会使用本地安装的 Git。

该设置位于 “所有设置>源代码管理>Git 设置>Git 全局配置 ”部分。

“选项”窗格中“默认分支名称”选项的屏幕截图。

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

关闭非 Git 解决方案

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

默认情况下,当切换到其他存储库时,Visual Studio 会关闭任何打开的解决方案或文件夹。 这样做时,如果打开 Git 存储库时选择在解决方案资源管理器中打开文件夹 ,并在 打开 Git 存储库时自动加载解决方案,则它还可能会加载新存储库的解决方案或文件夹。

此设置维护打开代码和打开存储库之间的一致性。 如果解决方案与存储库不在同一文件夹根目录中,则可以选择此选项,并在切换到解决方案存储库时保持打开状态。

以下值可用:

  • :当存储库打开时,当前打开的解决方案始终处于关闭状态。
  • :当存储库打开时,Visual Studio 会检查当前解决方案是否位于 Git 下。 如果不是,解决方案将保持开放。
  • 始终询问 (默认值):当打开存储库时,对话框会提示你继续打开当前解决方案或关闭它。

“选项”窗格中的“关闭非 Git 解决方案”选项的屏幕截图。

在“选项”对话框中的“打开存储库时,关闭不在 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。 默认情况下,不选择该选项。

在“选项”窗格中,“启用 push --force-with-lease”选项的屏幕截图。

“选项”对话框中的“启用 push --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 存储库时自动加载解决方案

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

“选项”窗格中的“打开 Git 存储库时自动加载解决方案”选项的屏幕截图。

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

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

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

“选项”窗格中“通过双击或按下 Enter 键自动签出分支”选项的屏幕截图。

“选项”对话框中“通过双击或按回车键自动签出分支”选项的屏幕截图。

重启时还原 Git 存储库窗口

如果上次关闭 Visual Studio 时,Git 存储库 窗口是打开的,那么在启动 Visual Studio IDE 时,该窗口会与其他永久窗口一起打开。 窗口的位置保存在窗口布局中。 如果您移动或停靠了窗口,它将重新在您之前放置的位置打开。 清除该复选框以防止 Visual Studio 启动时打开窗口。 仍可以通过在主菜单栏命令上选择 “查看>Git 存储库 ”来手动打开窗口。 键盘快捷方式为 Ctrl+0Ctrl+RCtrl+Q ,并在 Git 存储库上搜索。

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

“选项”窗格中“重新启动时还原 Git 存储库窗口”选项的屏幕截图。

“选项”对话框中“重启时还原 Git 存储库窗口”选项的屏幕截图。

有关详细信息,请参阅 “浏览存储库”。

重要

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