Ant*_*ton 6 git winmerge msysgit mergetool
我已经阅读了关于这个主题的大量问答,并遵循了该信的所有指示.但是我仍然头疼,试图将Git设置为使用WinMerge进行差异和合并.
我使用Git终端采取了以下步骤:
git config --global diff.tool winmerge
git config --global difftool.winmerge.cmd "winmerge.sh \"$LOCAL\" \"$REMOTE\""
git config --global difftool.prompt false
Run Code Online (Sandbox Code Playgroud)
我还在我的PATH变量中包含的目录中设置了一个脚本:
#!/bin/sh
echo Launching WinMergeU.exe: $1 $2
"C:/Program Files/WinMerge/WinMergeU.exe" git /e /u /dl "Base" /dr "Mine" "$1" "$2""
Run Code Online (Sandbox Code Playgroud)
当我执行
git mergetool
Run Code Online (Sandbox Code Playgroud)
在Git终端中,我看到:
Merging:
first.txt
Normal merge conflict for 'first.txt':
{local}: modified
{remote}: modified
Launching WinMergeU.exe:
Run Code Online (Sandbox Code Playgroud)
因此在我看来,$LOCAL和$REMOTE变量并没有将任何内容传递给winmerge.sh脚本.我在这做错了什么?我必须在配置部分中假设它.
与我之前的答案(或者这个或那个)相比,您的步骤包括winmerge.sh脚本末尾的额外双引号
#!/bin/sh
echo Launching WinMergeU.exe: $1 $2
"C:/Program Files/WinMerge/WinMergeU.exe"
git /e /u /dl "Base" /dr "Mine" "$1" "$2""
^
|
(this shouldn't be here)
话虽这么说,那些答案是关于difftool使用的winmerge,它不支持3路合并(只有本地和远程,没有基础).
对于一个真正的合并工具,我建议kdiff3(如" git-merge是否可以忽略行尾差异? ")或araxis(如"如何将Araxis设置为MSYS git的差异/合并工具?"中所述) ,您可以在其中看到使用的三个变量(本地,远程和基本).
| 归档时间: |
|
| 查看次数: |
6061 次 |
| 最近记录: |