这个答案对于查看签入git的两个文件之间的视觉差异非常有用: 我如何查看'git diff'输出与一个可视化的diff程序?
然而,我希望看到两个分支之间的视觉差异。到目前为止,我最好的选择似乎是:
git diff --name-status master dev
这不是很有信息量,也不是很直观。
还有更好的吗?
这个答案对于查看签入git的两个文件之间的视觉差异非常有用: 我如何查看'git diff'输出与一个可视化的diff程序?
然而,我希望看到两个分支之间的视觉差异。到目前为止,我最好的选择似乎是:
git diff --name-status master dev
这不是很有信息量,也不是很直观。
还有更好的吗?
当前回答
为了看到两个分支之间所有差异的可视化差异,我喜欢合并两个分支-不提交合并-然后使用git gui或git Extensions来获得差异的概述。
Git命令行用于合并而不提交:
git checkout branchA git merge --no-commit --no-ff branchB
完成后,可以撤消与的合并
git merge --abort
(h/t @jcugat’s的评论)
其他回答
如果您使用Eclipse,您可以直观地比较工作区中的当前分支与另一个标记/分支:
如果你使用的是OSX或Windows 7+, Atlassian SourceTree可以很好地解决这个问题。它是免费的。
您可以在并排的diff设置中看到分阶段的更改,并且可以轻松地将本地分支与远程分支和任何其他两个分支进行比较。当选择多个文件时,差异显示如下:
假设你已经签出了一个功能分支,你想要查看与'master'的差异,右键单击'master'分支并选择“diff against current”。
不幸的是,它似乎不会很快出现在*nix发行版中。
为了看到两个分支之间所有差异的可视化差异,我喜欢合并两个分支-不提交合并-然后使用git gui或git Extensions来获得差异的概述。
Git命令行用于合并而不提交:
git checkout branchA git merge --no-commit --no-ff branchB
完成后,可以撤消与的合并
git merge --abort
(h/t @jcugat’s的评论)
在GitExtensions中,你可以用Ctrl键在修订网格中选择两个分支。然后,您可以看到这些分支之间不同的文件。当你选择一个文件时,你会看到它的diff。
从这里开始
或者您可以右键单击任何修订,并选择比较>比较分支…
然后你可以选择与哪个分支进行比较:
最后,您会看到一个Diff窗口,列出两个分支之间不同的文件,对于每个文件,它都会显示一个Diff视图。
尝试“difftool”(假设你有diff工具设置)-见https://www.kernel.org/pub/software/scm/git/docs/git-difftool.html
我发现名称状态良好的摘要,但difftool将迭代的变化(和-d选项给你的目录视图),例如。
$ git difftool their-branch my-branch
Viewing: 'file1.txt'
Launch 'bc3' [Y/n]:
...
或者像@rsilva4提到的-d和默认到你当前的分支,它只是-例如比较到master:
$ git difftool -d master..
...是的,有很多变体——https://www.kernel.org/pub/software/scm/git/docs/git-reset.html