如何使用首选的差别工具/查看器查看“ git diff”输出?

当我输入git diff ,我想使用我选择的可视化diff工具(在Windows上为SourceGear“ diffmerge”)查看输出。 如何配置git来作到这一点? linux


#1楼

使用新的git difftool ,就像将它添加到.gitconfig文件中同样简单: git

[diff]
    tool = any-name
[difftool "any-name"]
    cmd = "\"C:/path/to/my/ext/diff.exe\" \"$LOCAL\" \"$REMOTE\""

(可选)还添加: vim

[difftool]
    prompt = false

还要查看diffall ,这是我编写的一个简单脚本,用于扩展烦人的(IMO)默认状况下以串行方式打开每一个文件的diff行为。 bash

Windows上的全局.gitconfig位于%USERPROFILE%\\.gitconfig app


#2楼

对于如何在1.6.3以前的git版本上配置diff工具的linux版本(1.6.3在git中添加了difftool), 是一个很是简洁的教程, 工具

简单来讲: spa

步骤1:将其添加到您的.gitconfig code

[diff]
  external = git_diff_wrapper
[pager]
  diff =

第2步:建立一个名为git_diff_wrapper的文件,并将其放在$ PATH中 教程

#!/bin/sh

vimdiff "$2" "$5"

#3楼

我已经在~/.gitconfig使用了很长时间: get

[diff]
    external = ~/Dropbox/source/bash/git-meld

使用git-meld

#!/bin/bash
if [ "$DISPLAY" = "" ];
then
    diff $2 $5
else
    meld $2 $5
fi

可是如今我厌倦了老是在图形化环境中使用meld的方法,而且用这种设置调用普通的diff并不容易,因此我切换到了这个:

[alias]
    v =  "!sh -c 'if [ $# -eq 0 ] ; then git difftool -y -t meld ; else git difftool -y $@ ; fi' -"

使用此设置,能够完成如下工做:

git v
git v --staged
git v -t kompare
git v --staged -t tkdiff

并且我仍然能够保留旧的git diff


#4楼

我在这里尝试了花哨的东西(与tkdiff一块儿使用),对我没有任何帮助。 所以,我编写了如下脚本tkgitdiff。 它作了我须要作的事。

$ cat tkgitdiff
#!/bin/sh

#
# tkdiff for git.
# Gives you the diff between HEAD and the current state of your file.
#

newfile=$1
git diff HEAD -- $newfile > /tmp/patch.dat
cp $newfile /tmp
savedPWD=$PWD
cd /tmp
patch -R $newfile < patch.dat
cd $savedPWD
tkdiff /tmp/$newfile $newfile

#5楼

您可使用git difftool

例如,若是您有meld ,则能够经过如下方式编辑分支masterdevel

git config --global diff.external meld
git difftool master..devel
相关文章
相关标签/搜索