hIp*_*pPy 4 git winmerge difftool
我可以通过winmerge向我展示修改后的文件的差异。但是对于新文件,winmerge会显示一个对话框,提示“左路径无效!”。我希望它将左窗格显示为空白,而右窗格显示文件的内容。
$ git difftool head^ newfile.txt
Run Code Online (Sandbox Code Playgroud)
winmerge对话框:
我在git版本2.8.2.windows.1上
这是我的difftool的git配置:
[diff]
tool = winmerge
[difftool]
prompt = false
[difftool "winmerge"]
cmd = \"C:\\Program Files (x86)\\WinMerge\\WinMergeU.exe\" -e -ub -wl \"$LOCAL\" \"$REMOTE\"
Run Code Online (Sandbox Code Playgroud)
我想念什么?
我找不到确切的解决方法,因此我将其发布。希望有人发现它有用。
我使用的winmerge.sh脚本只是将已经创建的空文件传递给新添加(或删除)的文件。该脚本位于我PATH或/git/cmd/git bash的目录中。
winmerge.sh(类似于此处的一个)
#!/bin/sh
# $1 is $LOCAL
# $2 is $REMOTE
NULL="/dev/null"
empty="$HOME/winmerge.empty"
if [ "$2" = "$NULL" ] ; then
# added
"D:/setups/WinMerge/WinMergeU.exe" -e -ub -wl -wr "$1" "$empty"
elif [ "$1" = "$NULL" ] ; then
# removed
"D:/setups/WinMerge/WinMergeU.exe" -e -ub -wl "$empty" "$2"
else
# modified
"D:/setups/WinMerge/WinMergeU.exe" -e -ub -wl "$1" "$2"
fi
Run Code Online (Sandbox Code Playgroud)
我winmerge.empty在此路径$HOME(是c:/users/<username>)上保留了一个空文件。
我在中使用sh脚本.gitconfig。
.gitconfig
[diff]
tool = winmerge
[difftool]
prompt = false
[difftool "winmerge"]
cmd = winmerge.sh "$LOCAL" "$REMOTE"
Run Code Online (Sandbox Code Playgroud)
注意:
在提交之前也要比较未跟踪的文件(新文件),我这样做
$ git add -N --no-all .
Run Code Online (Sandbox Code Playgroud)
然后使用difftool。-N --no-all仅将新文件的路径添加到索引中,但不添加其内容(--no-all不暂存已删除文件是必需的)。
| 归档时间: |
|
| 查看次数: |
985 次 |
| 最近记录: |