“Git 更改”窗口提供了在编码时与 Git 交互的无缝方式,而无需切换代码。 但是,有时更有必要专注于 Git 存储库。 例如,你可能需要了解团队一直在处理什么,或者比较两个提交以调查 bug。
你可以与所选的 Git 提供程序(如 GitHub 或 Azure DevOps)远程协作。
浏览本地和远程分支
若要开始,请在“视图”菜单上选择“Git 存储库”打开“Git 存储库”窗口(或使用 Ctrl0、++R 键盘快捷方式)。 还可以通过在“Git 更改”窗口和状态栏上选择传出/传入链接来访问 Git 存储库窗口。
Git 存储库窗口包含三个主要部分,如前面的屏幕截图中所述:
分支/标记:Git 使用户能够通过分支执行多任务并试验其代码。 Git 中的分支在多种方案中非常有用,尤其是在处理具有多个功能的复杂项目或与团队协作时。 使用 Visual Studio 17.13 及更高版本,可以在存储库中看到标记,并导航到任何标记。 团队可以使用 git 标记(例如
v1.0
),标记存储库历史记录中的点,并在历史记录中查看存储库的状态。 请参阅 Git - 标记。图:本部分直观显示分支的状态。 它有三个子节:
- 传入:显示团队一直在参与的传入提交。
- 传出:显示你尚未推送的本地提交。
- 本地历史记录:显示本地存储库跟踪的其余提交。
提交:若要打开此部分,请在 Graph 节中选择任何提交。 可通过选择提交引入的更改来检查这些更改,这会显示差异。 例如,上一个屏幕截图显示了由一个提交引入 Resize.cs 文件的更改。
使用 Alt+或 Alt+向下键键盘快捷方式可在这些部分之间跳转。
无需切换分支即可浏览任何本地或远程分支。 找到要关注的提交时,请选择“ 在新建选项卡中打开” 按钮以在不同的选项卡上打开提交。
多分支历史记录视图
版本 17.7 的新增功能:当你打开 Git Repo 窗口时,会从单分支视图开始。 然后,可以选择任何分支以将分支及其提交添加到多分支历史记录视图,从而添加视觉提示,以便更高效地与多个分支交互。
“本地历史记录”视图左侧有线条着色和分支标签,有助于更轻松地跟踪属于每个分支的提交。 可以使用表顶部的分支列表更轻松地在分支之间滚动,并立即知道图形中显示的分支。
在“分支/标签”部分,将鼠标悬停在分支上以显示切换历史记录中的分支按钮(该图标看起来像一只眼睛)。 通过使用悬停按钮,可以选择提交历史记录视图中要显示的分支。
可以使用提交历史记录视图顶部的工具栏按钮自定义视图并筛选分支。
仅显示第一个父级:将历史记录限制为仅显示为单行,而不是显示侧分支的提交序列。
显示本地分支:切换是否在历史记录视图中显示本地分支的标签。
显示远程分支:切换是否显示为正在查看的提交历史记录做出贡献的远程分支的标签。
显示标记:切换是否显示标记的标签。
显示本地分支、 显示远程分支和 显示标记 都引用历史记录视图中左侧显示的提交时标签指示器。
版本 17.14 的新增功能:若要专注于未同步的提交,可以使用 “显示传出/仅传入 ”工具栏按钮将历史记录视图更改为仅显示传出提交(尚未从当前分支推送)和传入提交(远程新增)。
还可以通过右键单击历史记录视图中的任意位置,在上下文菜单上选择“ 仅显示传出/传入 ”。
比较提交
若要比较分支中的任何两个提交,请使用 Ctrl 键选择要比较的两个提交。 然后,右键单击其中一个提交,再选择“比较提交”。
小窍门
与 提交详细信息类似,可以使用“ 在新选项卡中打开” 按钮打开其他选项卡上的比较,或在屏幕上将其最大化。
根据提交创建分支
在 Visual Studio 中,可以使用 Git 存储库窗口中的“Git Graph”窗格从以前的提交创建分支。 为此,请右键单击要从中创建新分支的提交,然后选择新建分支。
注释
此操作的等效命令是 git branch <branchname> [<commit-id>]
。
比较分支
比较分支概述了两个分支之间的差异,这在创建拉取请求、合并甚至删除分支之前非常有用。
若要使用 Visual Studio 将当前签出分支与其他分支进行比较,可以使用状态栏中托管的分支选取器和 Git 更改工具窗口来选择要与之比较的任何本地或远程分支。 右键单击要定位的分支,然后选择“ 与 Current Branch 进行比较”。 或者,可以使用 Git 存储库窗口中的分支列表来访问相同的命令。
选择“与当前分支比较”将打开比较分支体验,你可在其中导航浏览更改列表并选择想要比较的文件。
小窍门
如果更喜欢内联差异,可使用“差异配置选项”齿轮图标并切换到内联差异视图。
签出提交
签出提交在很多方面都是有益的。 例如,它允许返回到存储库历史记录中的上一点,可在其中运行或测试代码。 如果想要从远程分支(例如同事的分支)查看代码,它也非常有用。 这样,如果不打算参与本地分支,则无需创建本地分支。 在这种情况下,只需签出你想要查看的远程分支的提示即可。
若要在 Visual Studio 中签出以前的提交,请打开 “Git 存储库” 窗口,右键单击要返回的提交,然后选择 签出(–detach)。 Visual Studio 显示一个确认对话框,其中说明签出提交后,你将处于 HEAD 分离状态。 这意味着存储库的 HEAD 将直接指向提交而不是分支。
现在,你处于 HEAD 分离状态,可随意运行和测试代码,甚至浏览和提交更改。 浏览完毕并想要返回分支时,可选择通过签出现有分支来放弃更改,或者选择通过先创建新分支来保留更改。
重要
在 HEAD 分离状态中创建的提交与任何分支都不关联,在签出分支后,Git 可能会对其进行垃圾回收。 这就是保留更改的原因,建议在签出分支之前创建新分支。 例如,如果我们签出 Main 而不创建新分支,则提交 C5 和 C6 将被垃圾回收。
若要详细了解分离头状态,请参阅 分离头 Git 文档。
如果想要快速查看拉取请求并评估最新更新,签出远程分支的提示会很有帮助。 若要在 Visual Studio 中执行此作,请先确保从远程存储库提取和获取最新更新。 然后右键单击要查看的远程分支,再选择“签出提示提交”。
相关内容
- 在 Visual Studio 中管理 Git 存储库
- Visual Studio 中的 Git 体验