在 Visual Studio 中浏览 Git 存储库并比较分支
“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 图”窗格,根据以前的提交创建分支。 为此,请右键单击要从中创建新分支的提交,然后选择新建分支。
注意
此操作的等效命令是 git branch <branchname> [<commit-id>]
。
比较分支
通过比较分支,可简要了解两个分支之间的差异。在创建拉取请求、合并甚至删除分支之前,这些差异很有用。
若要使用 Visual Studio 将当前签出的分支与其他分支进行比较,可使用状态栏中托管的分支选取器和 Git 更改工具窗口来选择要与之比较的任何本地或远程分支。 右键单击目标分支,然后选择“与当前分支比较”。 或者,可利用“Git 存储库”窗口中的分支列表来访问同一命令。
选择“与当前分支比较”将打开比较分支体验,你可在其中导航浏览更改列表并选择想要比较的文件。
提示
如果更喜欢内联差异,可使用“差异配置选项”齿轮图标并切换到内联差异视图。
签出提交
签出提交在很多方面都是有益的。 例如,通过签出可返回到存储库历史记录中的上一个点,可在其中运行或测试代码。 如果要查看来自远程分支(例如,同事的分支)的代码,签出也很有用。 这样,如果不打算参与本地分支,则无需创建本地分支。 在这种情况下,只需签出你想要查看的远程分支的提示即可。
若要在 Visual Studio 中签出之前的提交,请打开“Git 存储库”窗口,右键单击要返回到的提交,然后选择“签出(-分离)”。 Visual Studio 显示一个确认对话框,其中说明签出提交后,你将处于 HEAD 分离状态。 这意味着存储库的 HEAD 将直接指向提交而不是分支。
现在,你处于 HEAD 分离状态,可随意运行和测试代码,甚至浏览和提交更改。 浏览完毕并想要返回分支时,可选择通过签出现有分支来放弃更改,或者选择通过先创建新分支来保留更改。
重要
在 HEAD 分离状态中创建的提交与任何分支都不关联,在签出分支后,Git 可能会对其进行垃圾回收。 这就是保留更改的原因,建议在签出分支之前创建新分支。 例如,如果我们签出 Main 而不创建新分支,则提交 C5 和 C6 将被垃圾回收。
若要详细了解 HEAD 分离状态,请参阅 Git 文档 HEAD 分离。
如果想要快速查看拉取请求并评估最新更新,签出远程分支的提示会很有帮助。 若要在 Visual Studio 中执行此操作,首先请确保从远程存储库提取并获取最新更新。 然后右键单击要查看的远程分支,再选择“签出提示提交”。