使用 VisualStudio 的 git 分支之间的差异

我试图了解如何比较分支或提交使用 VS2015。

使用其他 Git 程序,我可以很容易地比较版本,但是我不知道它是如何在 VS 中完成的。

有人能帮忙吗?

80490 次浏览

我只是花了一点时间玩玩当前版本的 VSTS,然后就弄明白了(截至2016年10月) :

  1. 转到 Code-> Branch
  2. 单击更新日期右侧的提交差异计数,如下图所示: vsts_screenshot

这将带您进入一个既显示两者之间的提交差异,又显示文件比较的页面

要比较 MicrosoftVisualStudio 中的特定对象(解决方案、项目、源文件、 ...)(使用 MVS2015) :

  1. 在解决方案资源管理器中找到该对象,并打开上下文菜单(右击) : 选择“查看历史...”。这将打开此对象的 History 窗口,其中包含所有提交 对象改变的地方(来自任何分支)。
  2. 多次选择要比较的两个提交(左键单击第一个,左键单击第二个)。
  3. 现在打开所选提交的上下文菜单(right _ click) : 选择“ Compare...”。这将在相应的提交中显示对象的 Diff 窗口(在第二次提交中添加的第一次提交或绿色提交中移除了红线突出显示的差异)。你可以使用 Diff 窗口中的滚动条,或者色带中的“上一个差异”和“下一个差异”按钮来调整对象的差异。

我不确定是否有一种方法可以比较两次不同提交中的所有项目(我只是为了非商业目的调用 GitKraken-free-或者在我的本地回购中调用任何其他 GUI 的 git)。Gitkraken 非常简单: 选择任意两个提交,这两个提交之间的所有差异都可以在你的指尖找到。

从2017年10月开始,当你右键点击 Code-> Branch 下面的一个分支时,你会看到这个菜单。点击比较分支。

enter image description here

如果您正在使用 Azure DevOps,这可以很容易地完成。(我知道这并不能真正回答这个问题,但我想其他人可能会觉得这有帮助。)

在 Azure DevOps 中进行回购。去布兰奇。当您将鼠标向右移动时,将出现一个椭圆。

单击设置比较分支。现在,其他分支将列出与此分支相关的“后面 | 前面”提交的数量。

点击比较分支。您可以设置任意两个分支,并查看文件差异和提交差异。比较的方向很重要。

Azure DevOps 分支比较剪辑

如果您想在 Visual Studio 2017或更高版本中比较两个不同的 树枝,您可以通过使用“ Compare Comits”特性来做到这一点,同时在 单身分支的“ View History”窗口中查看两个不同的提交。但是,显而易见的问题是,其中一个分支必须包含另一个分支的头提交,以便能够进行比较,而大多数情况下并非如此。幸运的是,有一种简单的方法可以实现这一点,那就是从一个分支中创建一个新的临时分支,然后在另一个分支中进行合并:

 git checkout -b temp-compare-branch branch-1-name --no-track
git merge branch-2-name

注意,如果您得到合并冲突,您可以只是快速选择一方或其他随机!如何解决冲突并不重要,因为您实际上并不关心合并提交。您只需要完成合并,以便合并提交的父级都驻留在同一个分支中。完成后,您可以“查看新临时分支的历史记录”,然后控制-单击相应的两个提交来选择它们,然后右击并“比较提交”来实现您的目标。

边注: 通常当我不得不这样做时,我最感兴趣的是一个分支上的更改,因为它与另一个分支分离了。在这种情况下,我通常发现查看每个分支的 HEAD 与合并基础的比较更有用,这会产生“一个分支上的一组变更不在另一个分支上”。要查找合并基础,只需使用:

git merge-base branch-1-name branch-2-name

该命令的输出是一个提交 ID,您可以分别与每个分支上的 HEAD 进行比较,甚至不需要创建临时分支,如果您实际上正在寻找一组特定的更改的话。

在 VS-2022中,你可以进入 View->Git Repository:

enter image description here

然后右键单击要比较的分支并选择 Compare '<current branch>' with '<other branch>'

enter image description here