1. ホーム
  2. windows

[解決済み] WindowsでのGit。mergetoolはどのようにセットアップするのですか?

2022-03-15 22:08:23

質問

CygwinでmsysGitとGitを試したことがあります。どちらもそれ自体としては問題なく動作し、gitkとgit-guiも完璧に実行できます。

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

解決方法は?

Charles Bailey の回答のフォローアップとして、私の git セットアップを紹介します。 p4merge (無料のクロスプラットフォーム 3way マージツール); 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 の設定に追加されました。
  • カスタムツールの設定値は "mergetool.[tool].cmd" にあり、 "merge.[tool].cmd" にはない(愚かにも、なぜ存在しないツールについて git が不満を言い続けるのかトラブルシューティングを1時間かけてやってしまった)。
  • すべてのファイル名に二重引用符を追加し、スペースを含むファイルをマージツールで検出できるようにしました(Powershell から msys の Git でテストしました)。
  • デフォルトでは、Perforce はそのインストールディレクトリを PATH に追加するので、コマンドで p4merge のフルパスを指定する必要はないことに注意してください。

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


EDIT (2014年2月)

のご指摘のとおりです。 グレゴリー・パコシュ(@Gregory Pakosz 最新の msys git をネイティブでサポートするようになりました。 p4merge (テスト対象は 1.8.5.2.msysgit.0 ).

実行することで対応ツールの一覧を表示することができます。

git mergetool --tool-help

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

もし p4merge と表示されました。 使用可能 であれば、それはあなたの パス を設定するだけです。 merge.tool :

git config --global merge.tool p4merge

と記載されていた場合 有効 を定義する必要があります。 mergetool.p4merge.path。 に加えて merge.tool :

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 はパスの環境変数を展開しないようです (これを動作させる方法をご存知でしたら、教えていただくか、この回答を更新してください)