我使用windows 7
。我想使用p4merge
作为Git差异/合并工具。我按照this article和this 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
。
答案 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 difftool
或git mergetool
来满足您的需求。
注意:我有一个存储库,即使我确实发出了P4Merge的git difftool
或git mergetool
命令也不会启动。我不确定该回购中的问题是什么。但是,我尝试使用git init
在驱动器上的某个地方创建一个空的仓库,添加文件,提交,然后修改它,然后然后我尝试了difftool
,它可以正常工作。因此,如果上述说明对您不起作用,则可能是问题出在其他地方。希望这会有所帮助。
答案 1 :(得分:0)
迟到总比没有好:)
mergetool.p4merge.path应该是mergetool.p4merge.cmd
将mergetool和difftool行的路径更改为cmd。