由于git diff在powershell中主要导致无法读取的空白或奇怪字符,我安装了Perforce P4Merge来处理合并和差异.
但是,我无法git diff打开p4merge应用程序来查看diff.到目前为止,我的.gitconfig看起来像这样:
[diff]
tool = p4diff
[difftool "p4diff"]
external = 'C:/PROGRA~1/Perforce/p4merge.exe "$LOCAL" "$REMOTE"'
prompt = false
[merge]
keepBackup = false
tool = p4merge
[mergetool "p4merge"]
cmd = "$BASE" "$LOCAL" "$REMOTE" "$MERGED"
path = 'C:/PROGRA~1/Perforce/p4merge.exe'
prompt = false
keepBackup = false
keepTemporaries = false
trustExitCode = false
Run Code Online (Sandbox Code Playgroud)
路径是正确的.但是,唉,git仍然试图在使用时在Powershell中呈现差异git diff.
那么这项工作的诀窍是什么?
Ken*_*tek 10
在命令提示符下,尝试: git config --global diff.tool p4diff
这对我有用,使用你所描述的配置文件设置:
[diff]
tool = p4merge
[difftool "p4diff"]
external = '"C:/Program Files/Perforce/p4merge.exe" "$LOCAL" "$REMOTE"'
Run Code Online (Sandbox Code Playgroud)
git difftool按预期运行打开的p4merge.
参考:如何使用visual diff程序查看'git diff'输出?
我在使用MSysGit v1.8.4的WIndows 7上.
对我来说,唯一的解决方案是将p4merge添加到系统路径变量中(之后需要重新启动).完成后,我这样说:
git config --global diff.tool p4merge
git config --global difftool.p4merge.cmd 'p4merge.exe $LOCAL $REMOTE'
git config --global difftool.prompt false
git config --global merge.tool p4merge
git config --global mergetool.p4merge.cmd 'p4merge.exe $BASE $LOCAL $REMOTE $MERGED'
git config --global mergetool.prompt false
git config --global mergetool.trustExitCode false
git config --global mergetool.keepBackup false
Run Code Online (Sandbox Code Playgroud)
我建议您坚持使用"git config"而不是手动编辑conf,因为这些方法之间的连字符等有时是不同的.