2013-10-28 13 views
5

私は現在、Git diffツールとしてmeldを使用しています。これはうまくいくが、バージョン管理下にあるPDFファイルもある。いつも私が作るときgit diff私に知らせる醜いメッセージが出てくる。メル友はそれらのバイナリファイルを比較できない。PDFに別のGit diffツールを追加するにはどうしたらいいですか?

今日、私はdiffpdfが素晴らしいと評価しました。しかし、どうやってgitがdiffpdfをPDFに使うように設定できますか?

私はこのようなメルド使用するようにgitを設定した:それは実行してください

#!/bin/bash 
meld "$2" "$5" 
    1. git-meldというスクリプトを作成しますchmod +x git-meld

    2. は私の設定に追加しますファイル:git config --global diff.external git-meld

    しかし明らかに私はdiffpdfとmeldの両方を使うために単純にこの方法を採用することはできません。

  • 答えて

    7

    マニュアルページgitattributesを参照する必要があります。基本的に、あなたは(これは~/.gitconfigまたは${PROJECT}/.git/configに行く)特定の種類のファイルを比較するために使用するカスタムコマンドを指定し、外部のdiffドライバを作成します。

    [diff "pdfdiff"] 
        command = diffpdf 
    

    次にあなたが特定の種類のファイルは、その差分ドライバを使用するように指定します(${PROJECT}/.gitattributesまたは{PROJECT}/some/subdir/.gitattributes):

    *.pdf diff=pdfdiff 
    

    そして、pdfファイルを除くすべてが通常のgit diffデフォルトを使用しますが、PDFファイルはdiffpdfあなたgit diffそれら...

    を呼び出します
    +0

    +1これはほとんど私が欲しかったものです。 pdfとpdfdiffを比較したいグローバルを指定することはできますか? (プロジェクト全体ではなく) –

    +1

    1人のユーザの "global"の場合、 'core.attributesfile'設定オプションがあります。これは、ユーザが作業しているすべてのプロジェクトに適用されるファイルを指定します('〜/。 gitconfig'ファイル)。システムスコープの "global"には、 '/ etc/gitattributes'があります(あなたがディストリビューションの' git'バージョンを使っていると仮定していれば、 '/ usr/local/etc/gitattributes'か、 – twalberg

    +2

    ありがとうございました!(あなたの答えにコメントを載せたくありませんか?) –

    0

    git difftoolman git difftool)を使用できます。

    $ git difftool #opens in the tool defined in config: git config --get diff.tool 
    $ git difftool --tool meld # Opens in meld, regardless of what you configured. 
    $ git difftool --tool diffpdf # Opens in diffpdf. 
    
    関連する問題