这个答案对于查看签入git的两个文件之间的视觉差异非常有用: 我如何查看'git diff'输出与一个可视化的diff程序?

然而,我希望看到两个分支之间的视觉差异。到目前为止,我最好的选择似乎是:

git diff --name-status master dev

这不是很有信息量,也不是很直观。

还有更好的吗?


当前回答

在GitExtensions中,你可以用Ctrl键在修订网格中选择两个分支。然后,您可以看到这些分支之间不同的文件。当你选择一个文件时,你会看到它的diff。

从这里开始

或者您可以右键单击任何修订,并选择比较>比较分支…

然后你可以选择与哪个分支进行比较:

最后,您会看到一个Diff窗口,列出两个分支之间不同的文件,对于每个文件,它都会显示一个Diff视图。

其他回答

下面是如何在visual Studio中看到整个提交与单个文件之间的视觉差异(在VS 2017中测试)。不幸的是,它只适用于一个分支中的提交:在“团队资源管理器”中,选择“分支”视图,右键单击回购,并选择“查看历史”,如下图所示。

然后,当前分支的历史记录出现在主区域中。(之前在当前分支上提交的分支被标记为标签。)现在用Ctrl-Left选择几个提交,然后右键单击并从弹出菜单中选择“Compare commit…”。

有关在Microsoft世界中比较分支的更多信息,请参阅这个stackoverflow问题:使用Visual Studio的git分支之间的差异。

看看git show-branch

你可以用git的核心功能做很多事情。在你的可视化差异中指定你想要包含的内容可能会很好。大多数答案关注的是逐行提交的差异,而你的例子关注的是在给定提交中受影响的文件的名称。

似乎没有解决的一个可视化问题是如何查看分支包含的提交(无论是共同的还是唯一的)。

对于这个视觉效果,我非常喜欢git show-branch;它将每个分支的提交分解成一个组织良好的表,返回到公共祖先。 -在一个有多个分支和分歧的回购上尝试它,只需输入git show-branch并检查输出 -关于示例的详细介绍,请参见Git分支之间的比较提交

如果您正在使用Intellij Idea IDE,您可以只使用分支中的比较选项。

如果您使用Eclipse,您可以直观地比较工作区中的当前分支与另一个标记/分支:

为了看到两个分支之间所有差异的可视化差异,我喜欢合并两个分支-不提交合并-然后使用git gui或git Extensions来获得差异的概述。

Git命令行用于合并而不提交:

git checkout branchA
git merge --no-commit --no-ff branchB

完成后,可以撤消与的合并

git merge --abort

(h/t @jcugat’s的评论)