我使用 windows 7
.我想用 p4merge
作为 Git 差异/merge 工具。我关注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
中看到 diff 的内部实现.
我试过了 Smooth Git + P4merge但它对我不起作用,我也尝试按照 External Merge and Diff Tools 中的描述进行操作但我不明白。
注意:
当冲突类型为 removed file conflict
时, git difftool
命令打开 p4merge
.
最佳答案
不确定是否有帮助,但最新版本的 Git 支持 P4Merge(我通过 MSYS2 在 Windows 上使用 git version 2.17.0.
)。
您可以通过运行 git difftool --tool-help
判断是否是这种情况。它将列出 Git 可以使用的可用工具(因为他们已经在您的 %PATH%
中找到它们)以及它可以使用的工具(如果已安装)。
如果 p4merge
在此列表中,那么您只需将 p4merge.exe
所在的路径添加到您的 %PATH%
(在Windows 我为此推荐 Rapid Environment Editor。
完成后,你只需要在你的 .gitconfig
[diff]
tool = p4merge
[merge]
tool = p4merge
除此之外别无其他。所以删除其他东西,比如 difftool.path
等等。
然后只需使用 git difftool
或 git mergetool
即可。
注意:我有一个存储库,即使我在其中发出了 git difftool
或 git mergetool
命令,P4Merge 也不会启动。我不确定那个 repo 协议(protocol)中的问题是什么。但是我尝试使用 git init
在我的驱动器上的某个地方创建一个空的 repo,添加一个文件,提交它,然后修改它,然后我尝试了 difftool
它奏效了。因此,如果上述描述对您不起作用,则问题可能出在其他地方。希望这会有所帮助。
关于git - 使用 p4merge 作为 git diff 工具,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32152446/