这个答案对于查看签入git的两个文件之间的视觉差异非常有用: 我如何查看'git diff'输出与一个可视化的diff程序?
然而,我希望看到两个分支之间的视觉差异。到目前为止,我最好的选择似乎是:
git diff --name-status master dev
这不是很有信息量,也不是很直观。
还有更好的吗?
这个答案对于查看签入git的两个文件之间的视觉差异非常有用: 我如何查看'git diff'输出与一个可视化的diff程序?
然而,我希望看到两个分支之间的视觉差异。到目前为止,我最好的选择似乎是:
git diff --name-status master dev
这不是很有信息量,也不是很直观。
还有更好的吗?
当前回答
如果您正在使用Intellij Idea IDE,您可以只使用分支中的比较选项。
其他回答
对于那些在Windows上使用TortoiseGit的人来说,你可以通过这个相当晦涩的功能来进行一些直观的比较:
导航到要比较的文件夹 按住shift并右键单击它 去TortoiseGit ->浏览参考 使用ctrl选择两个分支进行比较 右键单击你的选择,点击“比较选定的参考”
来源:http://wikgren.fi/compare-diff-branches-in-tortoise-git-or-how-to-preview-changes-before-doing-a-merge/
你也可以使用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\""
你也可以使用vscode来比较使用CodeLense扩展的分支,这已经在这个SO中回答了:如何在Visual studio代码中比较不同的分支
尝试“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
如果你正在使用github,你可以使用这个网站:
github.com/url/to/your/repo/compare/SHA_of_tip_of_one_branch...SHA_of_tip_of_another_branch
这将向你展示两者的比较。