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

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

git diff --name-status master dev

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

还有更好的吗?


当前回答

对于那些在Windows上使用TortoiseGit的人来说,你可以通过这个相当晦涩的功能来进行一些直观的比较:

导航到要比较的文件夹 按住shift并右键单击它 去TortoiseGit ->浏览参考 使用ctrl选择两个分支进行比较 右键单击你的选择,点击“比较选定的参考”

来源:http://wikgren.fi/compare-diff-branches-in-tortoise-git-or-how-to-preview-changes-before-doing-a-merge/

其他回答

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

看看git show-branch

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

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

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

你也可以使用Perforce中的免费P4Merge来做到这一点:

http://www.perforce.com/product/components/perforce-visual-merge-and-diff-tools

关于将其与Git集成的详细信息可以在这里和这里找到

但从以上链接中快速总结如下:

在~/中放入以下位。然后你可以用$ git mergetool和$ git difftool来使用p4merge 注意$ git diff仍然会使用默认的内联diff查看器:)(git版本1.8.2测试)

.gitconfig的更改

[merge]
  keepBackup = false
    tool = p4merge
[mergetool "p4merge"]
    cmd = /Applications/p4merge.app/Contents/Resources/launchp4merge "\"$PWD/$BASE\"" "\"$PWD/$REMOTE\"" "\"$PWD/$LOCAL\"" "\"$PWD/$MERGED\""
    keepTemporaries = false
    trustExitCode = false
    keepBackup = false
[diff]
    tool = p4merge
[difftool "p4merge"]
    cmd = /Applications/p4merge.app/Contents/Resources/launchp4merge "\"$REMOTE\"" "\"$LOCAL\""

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

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

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

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

git merge --abort

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

你也可以使用vscode来比较使用CodeLense扩展的分支,这已经在这个SO中回答了:如何在Visual studio代码中比较不同的分支