如何配置git
以使用p4merge
作为我的mergetool
?
接下来是我目前的情况:
$ git --version
git version 1.8.3.msysgit.0
$ git mergetool
This message is displayed because 'merge.tool' is not configured.
See 'git mergetool --tool-help' or 'git help config' for more details.
'git mergetool' will now attempt to use one of the following tools:
tortoisemerge emerge vimdiff
No known merge tool is available.
要在Linux机器(Ubuntu 16.04)上安装p4merge
并将其设置为git
的difftool
和mergetool
,我做了以下操作:
-
转到Perforce网站的下载页面,然后在搜索栏中写下:
p4merge
。 -
选择 p4merge for Linux 平台并下载它(请注意,您可以跳过注册)。
-
下载后将其解压缩并将文件夹的内容复制到新文件夹中
/opt/p4merge
:a)
gunzip p4v.tgz
b)
tar xvf p4v.tar
c)
sudo mkdir /opt/p4merge
d)我已将其下载到
/home/guya/Downloads
,"提取"的p4merge文件夹是(08/19)p4v-2019.1.1830398,因此在我的情况下,命令是:sudo mv /home/guya/Downloads/p4v-2019.1.1830398/* /opt/p4merge
-
使用以下命令创建指向
p4merge
可执行文件的符号链接:sudo ln -s /opt/p4merge/bin/p4merge /usr/local/bin/p4merge
-
将以下命令添加到
git
的"全局配置设置"中,以便p4merge
将用作git
的difftool
和mergetool
:git config --global merge.tool p4merge git config --global mergetool.p4merge.path /usr/local/bin/p4merge git config --global mergetool.prompt false
git config --global diff.tool p4merge git config --global difftool.p4merge.path /usr/local/bin/p4merge git config --global difftool.prompt false
-
为了查看差异(例如,在工作目录和暂存区域之间),您现在可以使用命令:
git difftool
打开要使用的 p4merge GUI。
注意:git diff
仍然有效,并将在终端中显示差异。
文章在 Git for Windows 中安装和使用 P4Merge 对我有用。
编辑您的全局 .gitconfig 并添加以下部分(您不必担心 p4merge.exe 的位置,它在安装过程中已添加到您的路径中):
[diff]
tool = p4merge
[difftool "p4merge"]
cmd = "p4merge.exe $LOCAL $REMOTE"
[merge]
tool = p4merge
[mergetool "p4merge"]
cmd = "p4merge.exe $BASE $LOCAl $REMOTE $MERGED"
trustExitCode = true
keepTemporaries = false
keepBackup = false
prompt = false
有一个警告,为了运行"git difftool"或"git mergetool" 你必须首先运行"git diff"或"git merge"并有所不同 或冲突。 然后编辑器将启动并准备好正确的文件 进行编辑。
我刚刚发布了一篇文章,解释了如何将 Git 与 P4Merge 集成,以及一个消除一些差异的启动器脚本:http://pempek.net/articles/2014/04/18/git-p4merge/