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

John Wachira 2023年1月30日
  1. Meld をデフォルトの Git Difftool として構成する
  2. Meld をデフォルトの Git Mergetool として構成する
Meld を Git の Difftool および Mergetool として設定する

この記事では、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 ファイルを更新するだけです。

著者: John Wachira
John Wachira avatar John Wachira avatar

John is a Git and PowerShell geek. He uses his expertise in the version control system to help businesses manage their source code. According to him, Shell scripting is the number one choice for automating the management of systems.

LinkedIn

関連記事 - Git Diff