git分支之间的视觉差异

这个答案非常适合在git中查看两个文件之间的视觉差异: 如何用一个可视化diff程序查看“git diff”输出?

不过,我想看到两个分支之间的视觉差异。 到目前为止,我最好的select似乎是:

git diff --name-status master dev 

这是不是很丰富,不是很直观。

那里有什么更好的吗?

使用范围的 git diff

 git diff branch1..branch2 

这将比较每个分支的提示。

如果你真的想要一些GUI软件,你可以尝试像支持Mac OS X和Windows的SourceTree 。

为了看到两个分支之间所有差异的视觉差异,我喜欢合并两个分支而不进行合并,然后使用Git Gui或Git Extensions来获得差异的总览。

Git命令行进行合并而不提交:

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

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

在这里输入图像说明

你也可以用gitk轻松做到这一点。

 > gitk branch1 branch2 

首先点击分支1的尖端。 现在右键单击branch2的尖端并selectDiff this-> selected。

对于那些在Windows上使用TortoiseGit的人,你可以通过这个相当模糊的特性进行一些有目的的比较:

  1. 导航到您要比较的文件夹
  2. 按住shift并右键单击它
  3. 转到TortoiseGit – >浏览参考
  4. 使用ctrlselect两个分支进行比较
  5. 右键单击您的select,然后单击“比较选定的参考”

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

如果您使用OSX或Windows 7 +, Atlassian SourceTree可以很好地工作。 这是免费的。

您可以在并行diff设置中看到分阶段更改,并且您可以轻松比较本地与远程和任何其他两个分支。 当select多个文件时,差异显示如下:

在这里输入图像说明

假设你已经签出了一个特性分支,并且想要看到“master”的差异,右键单击“master”分支并select“Diff against current”

不幸的是,它似乎不会在任何时候在* nix发行版上可用。

尝试“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

在GitExtensions中,您可以按住Ctrl键的同时在修订版网格中select两个分支。 那么你可以看到这些分支之间的文件不同。 当你select一个文件,你会看到它的差异。

从这里采取

如果你使用github,你可以使用这个网站:

github.com/url/to/your/repo/compare/SHA_of_tip_of_one_branch…SHA_of_tip_of_another_branch

这会告诉你两个比较。

UPDATE

我现在使用SourceTree。 彻底推荐。 我特别喜欢你可以舞台/不活动的胖子。


这样做的工作:

git-diffall与像GUI一样的GUI diff工具。 在这里看点5:

http://rubyglazed.com/post/15772234418/git-ify-your-command-line

有一个很好的post关于混帐和融合在这里: http : //nathanhoad.net/how-to-meld-for-git-diffs-in-ubuntu-hardy

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

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

在这里输入图像说明

将它与Git集成的细节可以在这里和这里find

但从上面的链接快速总结是:

  • 在〜/ .gitconfig文件中join以下内容,然后执行$ git mergetool$ git difftool来使用p4merge
  • 请注意, $ git diff仍然只是使用默认的行内差异查看器:)(使用git版本1.8.2进行testing)

.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\"" 

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

Eclipse工作区比较

如果你使用优秀的WebStorm编辑器,你可以比较任何你喜欢的分支: Webstorm混帐比较