适用范围: yes Visual Studio no Visual Studio for Mac no Visual Studio Code

“Git 更改”窗口提供了一种在编码时无需离开代码即可与 Git 交互的无缝方式。 但有时,将焦点放在 Git 存储库上会更有意义。 例如,你可能需要了解团队一直在处理什么,或者 比较两个提交 以调查 bug。

你可以与所选的 Git 提供程序远程协作,例如 GitHub 或 Azure DevOps。

浏览本地和远程分支

若要开始操作,请选择“视图”菜单上的“Git 存储库”(或使用 Ctrl+0、Ctrl+R 键盘快捷方式)来打开“Git 存储库”窗口。 还可选择“Git 更改”窗口和状态栏中的“传出/传入”链接来访问“Git 存储库”窗口。

“Git 存储库”窗口包含 3 个主要部分,编号见上面的屏幕截图:

  • 分支 :Git 通过分支使用户能够执行多任务并试验代码。 如果同时处理多个功能,或者要探索想法而不影响工作代码,则分支可能会很有用。

  • :此部分直观呈现分支的状态。 它有 3 个子部分:

  • 传入 :显示团队一直在参与的传入提交。
  • 传出 :显示你尚未推送的本地提交。
  • 本地历史记录 :显示本地存储库跟踪的其余提交。
  • 提交 :选择“图”部分中的任何提交可打开其详细信息。 可通过选择提交引入的更改来检查这些更改,这会显示差异。 例如,上一个屏幕截图显示了由一个提交引入 Resize.cs 文件的更改。

    通过 Alt+向上键或 Alt+向下键键盘快捷方式,可在这些部分之间跳转。

    无需切换分支即可浏览任何本地或远程分支。 找到想要将焦点置于其上的提交时,选择“在新选项卡中打开”按钮,在另一选项卡上打开提交。

    多分支图视图

    版本 17.7 的新增功能 :当你打开 Git Repo 窗口时,会从单分支视图开始。 然后,可以选择任何分支,将分支及其提交添加到多分支图形视图,从而添加视觉提示,以便更高效地与多个分支交互。

    “本地历史记录” 视图左侧有线条着色和分支标签,有助于更轻松地跟踪属于每个分支的提交。 可以使用表顶部的分支列表更轻松地在分支之间滚动,并立即知道图中显示的分支。

    若要比较分支中的任何两个提交,请使用 Ctrl 键选择要比较的两个提交。 然后,右键单击其中一个提交,再选择“比较提交”。

    若要使用 Visual Studio 将当前签出的分支与其他分支进行比较,可使用状态栏中托管的分支选取器和 Git 更改工具窗口来选择要与之比较的任何本地或远程分支。 右键单击目标分支,然后选择“与当前分支比较”。 或者,可利用“Git 存储库”窗口中的分支列表来访问同一命令。

    选择“与当前分支比较”将打开比较分支体验,你可在其中导航浏览更改列表并选择想要比较的文件。

    如果更喜欢内联差异,可使用“差异配置选项”齿轮图标并切换到内联差异视图。

    签出提交在很多方面都是有益的。 例如,通过签出可返回到存储库历史记录中的上一个点,可在其中运行或测试代码。 如果要查看来自远程分支(例如,同事的分支)的代码,签出也很有用。 这样,如果不打算参与本地分支,则无需创建本地分支。 在这种情况下,只需签出你想要查看的远程分支的提示即可。

    若要在 Visual Studio 中签出之前的提交,请打开“Git 存储库”窗口,右键单击要返回到的提交,然后选择“签出(-分离)”。 Visual Studio 显示一个确认对话框,其中说明签出提交后,你将处于 HEAD 分离状态。 这意味着存储库的 HEAD 将直接指向提交而不是分支。

    现在,你处于 HEAD 分离状态,可随意运行和测试代码,甚至浏览和提交更改。 浏览完毕并想要返回分支时,可选择通过签出现有分支来放弃更改,或者选择通过先 创建新分支 来保留更改。

    在 HEAD 分离状态中创建的提交与任何分支都不关联,在签出分支后,Git 可能会对其进行垃圾回收。 这就是保留更改的原因,建议在签出分支之前创建新分支。 例如,如果我们签出 Main 而不创建新分支,则提交 C5 和 C6 将被垃圾回收。

    若要详细了解 HEAD 分离状态,请参阅 Git 文档 HEAD 分离

    如果想要快速查看拉取请求并评估最新更新,签出远程分支的提示会很有帮助。 若要在 Visual Studio 中执行此操作,首先请确保从远程存储库提取并获取最新更新。 然后右键单击要查看的远程分支,再选择“签出提示提交”。

    若要继续学习,请查看 在 Visual Studio 中管理 Git 存储库

  • Visual Studio 中的 Git 体验
  • Visual Studio 和 GitHub:结合使用效果更佳
  •