HOWTO · Git

Meld を Git の Difftool および Mergetool として設定する

この記事では、Meld を Git のデフォルトの差分およびマージツールとして構成するプロセスについて説明します。

このページの内容

この記事では、Meld を Git のデフォルトの diff および merge ツールとして構成する方法について説明します。Meld は、ファイルの変更を検査して結果をマージするのを簡単にする素晴らしい GUI diff プログラムです。

最初のステップは、常にプログラムをダウンロードしてインストールすることです。完了したら、私たちのリードに従ってください。

Meld をデフォルトの Git Difftool として構成する

Meld を difftool として使用するように Git を構成するには、.gitconfig ファイルに変更を加える必要があります。以下の行を .gitconfig ファイルに追加します。

[diff]
    tool = meld
[difftool]
    prompt = false
[difftool "meld"]
    cmd = meld "$LOCAL" "$REMOTE"

順序は、$LOCAL および $REMOTE 引数の順序によって決定されます。この場合、元のファイルである $LOCAL が左側にあり、$REMOTE が右側に変更されたファイルです。

逆の場合は、代わりにこれを使用してください。

cmd = meld "$REMOTE" "$LOCAL"

prompt = false の部分は、Git に起動ツールの確認を求めないように指示します。これはデフォルトで行われます。

git difftool コマンドを git diff コマンドとして実行できます。

$ git difftool <BranchName> file_name

Meld をデフォルトの Git Mergetool として構成する

Meld は、GUI mergetool のおかげで、マージ中の競合を簡単に解決することもできます。ここでも、.gitconfig ファイルを変更して、Meld を Git の mergetool として構成します。

以下の行を .gitconfig ファイルに追加します。

[merge]
    tool = meld
[mergetool "meld"]
    # Choose one of these 2 lines
    cmd = meld "$LOCAL" "$MERGED" "$REMOTE" --output "$MERGED"
    cmd = meld "$LOCAL" "$BASE" "$REMOTE" --output "$MERGED"

マージの競合がある場合は、以下のコマンドを実行することで、Meld を mergetool として使用できます。

$ git mergetool

上記のパラメータを簡単に見てみましょう。

  1. $LOCAL - これは、チェックアウトされたブランチのファイルです。
  2. $REMOTE - これは、マージしようとしているブランチ内のファイルです。
  3. $MERGED - これは、マージの競合があるファイルです。
  4. $BASE - これは、$REMOTE を含むブランチが作成されたときの元のファイルです。

$LOCAL$REMOTE は、cmd での順序に応じて左右に配置され、$BASE または $MERGED を中央に配置できます。Meld では 3 方向のビューが可能であり、競合を解決するには中央のファイルを編集する必要があります。

編集後、プログラムを閉じることができ、Git はファイルを自動的に更新します。この時点で、変更をコミットしてマージを完了する準備ができています。

または、Bash でいくつかのコマンドを実行して、.gitconfig ファイルを更新することもできます。

Windows ユーザーの場合、これらのコマンドを実行します。

$ git config --global diff.tool meld
$ git config --global difftool.meld.path "C:\Program Files (x86)\Meld\Meld.exe"
$ git config --global difftool.prompt false

$ git config --global merge.tool meld
$ git config --global mergetool.meld.path "C:\Program Files (x86)\Meld\Meld.exe"
$ git config --global mergetool.prompt false

MELD.exe ファイルへの正しいパスを入力してください。

Linux ユーザーは、以下のコマンドを使用して、.gitconfig ファイルを更新できます。

$ git config --global diff.tool meld
$ git config --global difftool.meld.path "/usr/bin/meld"
$ git config --global difftool.prompt false

$ git config --global merge.tool meld
$ git config --global mergetool.meld.path "/usr/bin/meld"
$ git config --global mergetool.prompt false

上記のコードを、マシンの正しいインストールパスで更新します。

一言で言えば、Git の元の diff および merge インターフェースは魅力的ではありません。ただし、デフォルトの GUI difftool および mergetool として Meld を使用するように Git を構成できます。

上記の手順に従って、.gitconfig ファイルを更新するだけです。