使用 p4merge 作为 git diff 工具
Using p4merge as git diff tool
我用windows 7
。我想使用 p4merge
作为 Git diff/merge 工具。我按照 this article and 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 bash
中使用 git difftool
命令时,我期望 p4merge
但我在 git bash
中看到了 diff 的内部实现。
我试过 Smooth Git + P4merge but it does not work for me also I tried to do as described in External Merge and Diff Tools 但我不明白。
注:
当冲突类型为 removed file conflict
时,git difftool
命令打开 p4merge
。
迟到总比不到好:)
mergetool.p4merge.path 应该是 mergetool.p4merge.cmd
将 mergetool 和 difftool 行的路径更改为 cmd。
不确定是否有帮助,但 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 也不会启动。我不确定那个回购协议中的问题是什么。但是我尝试使用 git init
在我的驱动器上的某个地方创建一个空的 repo,添加一个文件,提交它,然后修改它, 然后 我试过 difftool
并且它有效.因此,如果上述描述对您不起作用,则问题可能出在其他地方。希望这会有所帮助。
如果您使用 Mac,请不要忘记在应用程序之前添加 /
,如:
[mergetool "p4merge"]
path = /Applications/p4merge.app/Contents/MacOS/p4merge
这就是为什么当我在下面 运行 时 P4Merge 不会为我打开的原因:
git mergetool
我用windows 7
。我想使用 p4merge
作为 Git diff/merge 工具。我按照 this article and 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 bash
中使用 git difftool
命令时,我期望 p4merge
但我在 git bash
中看到了 diff 的内部实现。
我试过 Smooth Git + P4merge but it does not work for me also I tried to do as described in External Merge and Diff Tools 但我不明白。
注:
当冲突类型为 removed file conflict
时,git difftool
命令打开 p4merge
。
迟到总比不到好:)
mergetool.p4merge.path 应该是 mergetool.p4merge.cmd
将 mergetool 和 difftool 行的路径更改为 cmd。
不确定是否有帮助,但 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 也不会启动。我不确定那个回购协议中的问题是什么。但是我尝试使用 git init
在我的驱动器上的某个地方创建一个空的 repo,添加一个文件,提交它,然后修改它, 然后 我试过 difftool
并且它有效.因此,如果上述描述对您不起作用,则问题可能出在其他地方。希望这会有所帮助。
如果您使用 Mac,请不要忘记在应用程序之前添加 /
,如:
[mergetool "p4merge"]
path = /Applications/p4merge.app/Contents/MacOS/p4merge
这就是为什么当我在下面 运行 时 P4Merge 不会为我打开的原因:
git mergetool