[英]Differences between git branches using Visual Studio
我试图了解如何使用 VS 2015 比较分支或提交。
使用其他 Git 程序,我可以轻松比较版本,但在 VS 中看不到它是如何完成的。
任何人都可以帮忙吗?
要在 Microsoft Visual Studio(使用 MVS2015)中比较特定对象(解决方案、项目、源文件...):
我不确定是否有一种方法可以比较两个不同提交中的所有项目(我只是调用 GitKraken - 免费用于非商业目的 - 或在我的本地存储库中为 git 调用任何其他 GUI)。 不过 Gitkraken 非常简单:选择任意两个提交,这些提交之间的所有差异都触手可及。
如果要比较 Visual Studio 2017 或更高版本中的两个不同分支,可以通过使用“比较提交”功能来执行此操作,同时在“查看历史记录”窗口中查看单个分支的两个不同提交。 但显而易见的问题是,其中一个分支必须包含另一个分支的头部提交才能进行比较,而大多数情况下并非如此。 幸运的是,有一种简单的方法可以通过从一个分支创建一个新的临时分支并合并到另一个分支来实现这一点:
git checkout -b temp-compare-branch branch-1-name --no-track
git merge branch-2-name
请注意,如果您遇到合并冲突,您可以快速随机选择一侧或另一侧! 您如何解决冲突并不重要,因为您实际上并不关心合并提交。 您只需要完成合并,以便合并提交的父项都位于同一分支中。 完成后,您可以“查看历史记录”新的临时分支,然后按住 Control 键单击两个相应的提交以选择它们,然后右键单击并“比较提交”以实现您的目标。
旁注:通常当我不得不这样做时,结果证明我最感兴趣的是一个分支上的变化,因为它从另一个分支分离出来。 在这种情况下,我通常发现查看每个分支的 HEAD 与合并基础的比较更有用,这会产生“一个分支上的一组更改,而另一个分支中没有”。 要查找合并基础,您只需使用:
git merge-base branch-1-name branch-2-name
该命令的输出是一个提交 ID,您可以将该提交与每个分支上的 HEAD 分别进行比较,甚至不需要创建临时分支,如果这组特定更改正是您实际需要的。
如果您使用 Azure DevOps,这可以轻松完成。 (我意识到这并不能真正回答问题,但我认为其他人可能会觉得这有帮助。)
转到 Azure DevOps 中的存储库。 去分行。 当您将鼠标向右移动时,会出现一个椭圆。
单击设置比较分支。 现在其他分支将列出他们在“Behind |Behind | Ahead' 与这个分支有关。
单击比较分支。 可以设置任意两个分支,查看文件差异和提交差异。 比较的方向很重要。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.