在Windows上为Git配置差异工具
由于powershell中的在Windows上为Git配置差异工具,git,merge,diff,Git,Merge,Diff,由于powershell中的git diff通常会导致无法读取的空白或奇怪字符,因此我安装了Perforce P4Merge来处理合并和差异 但是,我无法使git diff打开p4merge应用程序以查看中的差异。到目前为止,我的.gitconfig如下所示: [diff] tool = p4diff [difftool "p4diff"] external = 'C:/PROGRA~1/Perforce/p4merge.exe "$LOCAL" "$REMOTE"'
git diff
通常会导致无法读取的空白或奇怪字符,因此我安装了Perforce P4Merge来处理合并和差异
但是,我无法使git diff
打开p4merge应用程序以查看中的差异。到目前为止,我的.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
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
路径是正确的。但是遗憾的是,git在使用git diff
时仍然试图在Powershell中呈现差异
那么,实现这一点的诀窍是什么呢?在命令提示符下,尝试:
git config--global diff.tool p4diff
这对我来说很有效,使用的配置文件设置如您所述:
[diff]
tool = p4merge
[difftool "p4diff"]
external = '"C:/Program Files/Perforce/p4merge.exe" "$LOCAL" "$REMOTE"'
按预期运行git difftool打开p4merge
参考:我在Windows7上使用MSYSGitV1.8.4 对我来说,唯一的解决方案是将p4merge添加到系统路径变量中(之后需要重新启动)。完成后,我想这样做:
[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
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
我建议您坚持使用“git config”,而不是手动编辑conf,因为连字符等有时在这些方法之间是不同的。Dan Limerick有一个关于在Windows上设置Performce的p4merge的优秀简短教程: 在Windows 7上使用Git 1.9.4和p4merge 2014.1进行测试
- 在步骤2中,您必须添加“$LOCAL\”\“$REMOTE\”(LOCAL diff REMOTE),否则p4merge将不知道如何区分
git配置——全局差异工具融合
git config--global difftool.meld.cmd“meld\”$LOCAL\“\$REMOTE\”
git difftool --dir-diff ./
它不应该是
tool=p4diff
?这也是您在输入命令时得到的结果,当您输入命令git config--global diff.tool p4diff
相关的post-How-to时。我刚刚在它尝试启动Meld时遇到了一系列错误?@NicholasPetersen什么样的错误?错误摘录将更清楚地说明问题所在。