Windows 上の Git: マージツールの設定方法は? 質問する

Windows 上の Git: マージツールの設定方法は? 質問する

Cygwin で msysGit と Git を試してみました。どちらも単体でも問題なく動作し、gitk と git-gui も完璧に動作します。

さて、マージツールをどうやって設定すればいいのでしょうか? (Vimdiff は Cygwin でも動作しますが、できれば Windows を愛用している同僚のために、もう少しユーザーフレンドリーなものがほしいです。)

ベストアンサー1

Charles Baileyの回答に続いて、私が使用しているgitの設定を紹介します。p4マージ(無料のクロスプラットフォーム 3 ウェイ マージ ツール)。msys Git (Windows) インストールでテスト済み:

git config --global merge.tool p4merge
git config --global mergetool.p4merge.cmd 'p4merge.exe \"$BASE\" \"$LOCAL\" \"$REMOTE\" \"$MERGED\"'

または、Windows cmd.exe シェルの場合、2 行目は次のようになります。

git config --global mergetool.p4merge.cmd "p4merge.exe \"$BASE\" \"$LOCAL\" \"$REMOTE\" \"$MERGED\""

変更点(チャールズ・ベイリーと比較して):

  • グローバル git 設定に追加されました。つまり、現在のプロジェクトだけでなくすべての git プロジェクトに有効です。
  • カスタム ツール設定値は、「merge.[tool].cmd」ではなく、「mergetool.[tool].cmd」にあります (愚かな私は、git が存在しないツールについてエラーを出し続けている原因をトラブルシューティングするのに 1 時間費やしました)
  • すべてのファイル名に二重引用符を追加し、スペースを含むファイルもマージ ツールで検出できるようにしました (Powershell の msys Git でこれをテストしました)
  • デフォルトではPerforceはインストールディレクトリをPATHに追加するので、コマンドでp4mergeへのフルパスを指定する必要はありません。

ダウンロード:http://www.perforce.com/product/components/perforce-visual-merge-and-diff-tools


編集(2014 年 2 月)

指摘したように@グレゴリー・パコシュ、 最新msys git現在、 p4merge を「ネイティブに」サポートしています( 1.8.5.2.msysgit.0でテスト済み)。

次のコマンドを実行すると、サポートされているツールのリストを表示できます。

git mergetool --tool-help

使用可能または有効なリストにp4merge が表示されるはずです。表示されない場合は、git を更新してください。

p4merge が使用可能としてリストされている場合は、 PATH内にあるため、 merge.tool を設定するだけで済みます。

git config --global merge.tool p4merge

有効としてリストされている場合は、 merge.toolに加えてmergetool.p4merge.pathを定義する必要があります。

git config --global mergetool.p4merge.path c:/Users/my-login/AppData/Local/Perforce/p4merge.exe
  • 上記は、p4merge がシステム全体ではなく現在のユーザーに対してインストールされた場合のパスの例です (管理者権限や UAC の昇格は必要ありません)
  • 現在のユーザーのホームディレクトリに展開されるはずですが~(理論的にはパスは になるはずです~/AppData/Local/Perforce/p4merge.exe)、これは私の場合は機能しませんでした。
  • さらに良いのは、環境変数(例)を利用することです$LOCALAPPDATA/Perforce/p4merge.exe。git はパスの環境変数を展開していないようです(これを機能させる方法をご存知の場合は、私に知らせるか、この回答を更新してください)

おすすめ記事