使用p4merge作为git diff工具

时间:2015-08-22 04:51:15

标签: git bash version-control windows-7 p4merge

我使用windows 7。我想使用p4merge作为Git差异/合并工具。我按照this articlethis one设置并配置p4merge

git config --global merge.tool p4merge
git config --global mergetool.p4merge.path "C:/Program Files/Perforce/p4merge.exe"
git config --global diff.tool p4merge
git config --global difftool.p4merge.path "C:/Program Files/Perforce/p4merge.exe"

这些行来自git config

merge.tool=p4merge
mergetool.p4merge.path=C:/Program Files/Perforce/p4merge.exe
diff.tool=p4merge
difftool.p4merge.path=C:/Program Files/Perforce/p4merge.exe
mergetool.keeptemporaries=false
mergetool.prompt=false

现在git mergetool命令工作正常。但是当我在git difftool中使用git bash命令时,我希望p4merge,但我会在git bash中看到差异的内部实现。

我尝试了Smooth Git + P4merge,但它对我不起作用,我也尝试按照External Merge and Diff Tools中的说明进行操作,但我不明白。

注意:

当冲突类型为removed file conflict时,git difftool命令会打开p4merge

2 个答案:

答案 0 :(得分:2)

不确定是否有帮助,但是最新版本的Git支持P4Merge(我在Windows上通过MSYS2使用git version 2.17.0.)。

通过运行git difftool --tool-help可以确定是否是这种情况。它将列出Git可以使用的可用工具(因为它们已经在您的%PATH%中找到了)以及它可以使用的工具(如果已安装)。

如果p4merge在此列表中,则只需将p4merge.exe所在的路径添加到%PATH%(在Windows上,我建议为此使用Rapid Environment Editor)。 / p>

完成此操作后,只需在.gitconfig

中添加以下配置即可
[diff]
    tool = p4merge
[merge]
    tool = p4merge

,仅此而已。因此,请删除difftool.path之类的其他内容。

然后只需使用git difftoolgit mergetool来满足您的需求。

注意:我有一个存储库,即使我确实发出了P4Merge的git difftoolgit mergetool命令也不会启动。我不确定该回购中的问题是什么。但是,我尝试使用git init在驱动器上的某个地方创建一个空的仓库,添加文件,提交,然后修改它,然后然后我尝试了difftool,它可以正常工作。因此,如果上述说明对您不起作用,则可能是问题出在其他地方。希望这会有所帮助。

答案 1 :(得分:0)

迟到总比没有好:)

mergetool.p4merge.path应该是mergetool.p4merge.cmd

将mergetool和difftool行的路径更改为cmd。