如何比较Visual Studio代码中的两个不同分支?

这可能吗?


当前回答

我通常希望将当前签出状态与其他分支(通常是master)进行比较。因为我喜欢使用键盘快捷键,我找到的最简单的方法(从现有的各种答案中编译):

按ctrl/cmd-P,打开VSC命令面板 开始输入'git compare'。出现以下选项: 选择“Compare HEAD with…”(或者其他更适合你的用例) 在出现的对话框中,选择所需的分支,例如master 在“搜索和比较”窗口(通常在左下角)检查结果。根据需要展开箭头,例如查看不同的文件,或后面/前面查看提交列表。

如果你想比较两个特定的分支(而不是签出的分支),选择“compare References…”’。然后你可以选择2个分支/标签/提交/…

其他回答

这在没有GitLens的情况下是可能的(而且简单得多),只使用Git Graph插件。

打开Git Graph后,单击要比较的第一个提交,然后按Ctrl/Cmd +单击第二个提交。这两行都将突出显示。提交细节现在将显示A和提交B之间的所有差异,允许您跨分支或分支比较任何两个提交 来自同一个分支。

来源:Git Graph扩展页面

更新:截至2020年11月,Gitlens出现在VSCode的内置源代码控制面板中

我推荐使用Git Lens。

使用Git历史差异插件,方便并排分支差异:

https://marketplace.visualstudio.com/items?itemName=huizhou.githd

访问上面的链接,向下滚动到标题为Diff分支的动画GIF图像。你会发现你可以很容易地选择任何分支,并与你所在的分支进行并排比较!这就像你在GitHub Pull Request中看到的预览一样。对于Git的其他东西,我更喜欢Visual Studio Code的内置功能或其他人提到的Git Lens。

然而,上面的插件在做分支差异方面是出色的(即,对于那些做重基Git流的人来说,在强制推送到GitHub PR之前需要预览)。

如果您只是想使用GitLens查看工作副本和特定提交之间对特定文件的更改,如果版本之间有许多文件更改,那么当前接受的答案可能会使您难以找到感兴趣的文件。

相反,如果文件是打开的,右键单击文件的选项卡(或者,如果它目前没有打开,转到侧栏中的文件资源管理器,右键单击文件),然后转到提交更改>打开修改更改…(或打开变更与分支或标签…)

在2020年11月发布的11.0.0版本中,GitLens视图现在默认都放在VSCode的源代码控制选项卡下,包括具有比较分支功能的搜索和比较视图:

可以在GitLens设置中更改回侧栏布局: