6

私は、まさにこのトピックに関する膨大な量の Q&A を読み、すべての指示に従って手紙を書きました。しかし、WinMerge を使用して差分とマージを行うように Git を設定しようとすると、まだ頭痛の種になります。

Git ターミナルを使用して次の手順を実行しました。

git config --global diff.tool winmerge
git config --global difftool.winmerge.cmd "winmerge.sh \"$LOCAL\" \"$REMOTE\""
git config --global difftool.prompt false

PATHまた、変数に含まれるディレクトリに次のようなスクリプトを設定しました。

#!/bin/sh
echo Launching WinMergeU.exe: $1 $2
"C:/Program Files/WinMerge/WinMergeU.exe" git /e /u /dl "Base" /dr "Mine" "$1" "$2""

実行すると

git mergetool

Git ターミナルでは、次のように表示されます。

Merging:
first.txt

Normal merge conflict for 'first.txt':
  {local}: modified
  {remote}: modified
Launching WinMergeU.exe:

そのため、変数$LOCAL$REMOTE変数がwinmerge.shスクリプトに何も渡していないように思えます。ここで何が間違っていますか?構成部分でそれを想定する必要があります。

4

1 に答える 1

7

以前の回答(またはthis one、またはthat one )と比較すると、winmerge.shスクリプトの最後に余分な二重引用符が含まれています。

    #!/ビン/sh
    echo WinMergeU.exe を起動中: $1 $2
    「C:/Program Files/WinMerge/WinMergeU.exe」
      git /e /u /dl "ベース" /dr "鉱山" "$1" "$2""
                                               ^
                                               | |
                                    (ここにあるはずがない)

そうは言っても、これらの回答は difftool using に関するもので、これは3 方向のマージwinmergeをサポートしていません(ローカルとリモートのみで、ベースはありません)。

真のマージ ツールについては、kdiff3(「git-merge で行末の違いを無視することは可能ですか?」のように) またはaraxis( 「Araxis を MSYS git の差分 / マージ ツールとして設定する方法」で説明されているように)をお勧めします。で、使用されている3 つの変数 ( local 、 remote 、および base )を確認できます。

于 2010-10-28T20:32:36.370 に答える