Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用VisualStudio的git分支之间的差异_Git_Visual Studio 2015 - Fatal编程技术网

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

使用VisualStudio的git分支之间的差异,git,visual-studio-2015,Git,Visual Studio 2015,我试图了解如何使用VS 2015比较分支或提交 使用其他Git程序,我可以很容易地比较版本,但我看不出它在VS中是如何完成的 有人能帮忙吗 我刚刚花了一点时间玩了一下当前版本的VST,并找到了答案(截至2016年10月): 转到代码->分支 单击更新日期右侧的commit diff count,如本屏幕截图所示: 这将带您进入一个页面,该页面显示两者之间的提交差异,并显示文件比较,以比较Microsoft Visual Studio中的特定对象(解决方案、项目、源文件等)(使用MVS2015)

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

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


有人能帮忙吗

我刚刚花了一点时间玩了一下当前版本的VST,并找到了答案(截至2016年10月):

  • 转到代码->分支
  • 单击更新日期右侧的commit diff count,如本屏幕截图所示:

  • 这将带您进入一个页面,该页面显示两者之间的提交差异,并显示文件比较,以比较Microsoft Visual Studio中的特定对象(解决方案、项目、源文件等)(使用MVS2015):

  • 在解决方案资源管理器中找到该对象,并打开关联菜单(右键单击):选择“查看历史…”。这将打开此对象的历史窗口,其中包含对象更改的所有提交(来自任何分支)
  • 多选要比较的两个提交(左键单击第一个提交,Ctrl键单击第二个提交)
  • 现在打开任一选定提交的上下文菜单(右键单击):选择“比较…”。这将在相应的提交中为对象打开差异窗口(在第一次提交中以红线突出显示差异,在第二次提交中以绿线突出显示差异)。您可以使用“差异”窗口中的滚动条,或功能区中的“上一个差异”和“下一个差异”按钮在对象的差异之间切换

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

    从2017年10月开始,当您右键单击代码->分支下的分支时,您将获得此菜单。单击比较分支


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

    转到Azure DevOps中的回购。去分行。将鼠标向右移动时,将出现一个椭圆

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

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


    如果要在Visual Studio 2017或更高版本中比较两个不同的分支,可以使用“比较提交”功能,同时在“查看历史记录”窗口中查看单个分支的两个不同提交。不过,一个明显的问题是,其中一个分支必须包含另一个分支的头提交,以便能够进行比较,而大多数情况下并非如此。幸运的是,通过从一个分支创建新的临时分支,然后在另一个分支中合并,可以很容易地实现这一点:

     git checkout -b temp-compare-branch branch-1-name --no-track
     git merge branch-2-name
    
    注意,如果您遇到合并冲突,您可以快速随机选择一方或另一方!如何解决冲突无关紧要,因为您实际上并不关心合并提交。您只需要完成合并,以便合并提交的父级都位于同一个分支中。完成后,您可以“查看新临时分支的历史记录”,然后控制单击两个相应的提交以将它们都选中,然后右键单击并“比较提交”以实现您的目标

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

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

    该命令的输出是一个提交ID,您可以将该提交分别与每个分支上的头进行比较,而无需进行临时分支,前提是您实际需要的是一组特定更改。

    不在visual studio中,但您始终可以执行类似于git difftool--dir diff branchA branchB的操作。在Visual Studio中,查看历史记录、查看提交详细信息以及将文件与这些文件的早期版本进行比较非常容易。但我没有看到任何真正比较分支与分支的东西,除了使用Pull请求。您可以在任意两个不同的分支之间运行PR,该PR将显示分支的差异。“那你就可以放弃公关了。想一想。”史蒂夫肯尼迪,这很好,谢谢。您甚至不必实际创建拉取请求,只需开始。在点击最终创建按钮之前,底部仍然显示文件。这假设您使用的是VST。最初的问题没有提到这个在线服务。为什么这是公认的答案?这个问题与VisualStudio有关,而不是VST(现在的TFS/DevOps)。如果在团队资源管理器中打开“分支”。您可以右键单击分支,然后选择“查看历史记录”。其余内容与上面解释的相同。是否有方法将未提交的版本与以前的任何分支进行比较?这允许我在本地提交之前修改内容。这并不能回答有关在Visual Studio IDE内比较Git分支的问题。正如@MartiniBianco所提到的,“查看历史记录”在不同的提交上显示分支名称标记。选择各个分支的特定提交,然后进行比较。这将提供在Visual Studio IDE中比较两个Git分支的功能。确切地说,此选项在上可用;但是,使用Microsoft Visual Studio appli