如何使用首選的差別工具/查看器查看「 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
相關文章
相關標籤/搜索