TypechoJoeTheme

MetMan's Blog

网站页面

Git使用p4merge作为diff和merge工具

MetMan博 主神仙
2024-12-03
/
0 评论
/
80 阅读
/
311 个字
/
百度已收录
12/03
本文最后更新于 2024年12月03日,已超过 88天没有更新。如果文章内容或图片资源失效,请留言反馈,我会及时处理,谢谢!

我们团队之前使用Perforce作为版本管理软件,其提供的图形界面的diff/merge工具非常好用。因此在切换到Git版本管理后,希望Git合并版本时能够继续使用这些工具。

下面是配置p4merge作为Git的diff/merge工具方法。

安装

  • 从Perforce网站下载免费的二进制包。

通过浏览器下载,安装包网址:https://www.perforce.com/downloads/visual-merge-tool

这里我们选择和操作系统匹配的2019版本(Centos 8.4)。

或者直接使用wget下载。

$ wget https://cdist2.perforce.com/perforce/r19.1/bin.linux26x86_64/p4v.tgz

如果下载最新版本,会因为缺少依赖动态库报错。

p4merge.bin: error while loading shared libraries: libOpenGL.so.0: cannot open shared object file: No such file or directory
  • 解压缩安装包并配置PATH变量
$ mkdir /path/to/p4merge
$ tar xzvf p4v.tgz -C /path/to/p4merge --strip-components=1
$ vi ~/.bashrc
export PATH=/path/to/p4merge/bin:$PATH
$ source ~/.bashrc 
  • 测试p4merge命令
$ p4merge

Git配置

在个人git配置文件~/.gitconfig中添加以下内容:

[diff]
    tool = p4merge
[difftool]
    prompt = false
[difftool "p4merge"]
    cmd = p4merge "$LOCAL" "$REMOTE"
    keepTemporaries = false
    trustExitCode = false
    keepBackup = false
[merge]
    keepBackup = false
    tool = p4merge
[mergetool]
    prompt = false
    keepBackup = false
[mergetool "p4merge"]
    cmd = p4merge "$BASE" "$LOCAL" "$REMOTE" "$MERGED"
    keepTemporaries = false
    trustExitCode = false
    keepBackup = false

测试

首先制造一个合并冲突场景,远程仓库和本地仓库同时修改同一个文件同一处内容,然后本地仓库拉取远程仓库并合并。

$ git pull 
Auto-merging README.md
CONFLICT (content): Merge conflict in README.md
Automatic merge failed; fix conflicts and then commit the result.

此时pull命令由于冲突原因无法完成合并操作,需要手动解决冲突。

$ git mergetool

通过鼠标点击合并区域右侧的按钮选择想要的集成内容,合并完成后点击保存修改。

然后Git提交修改文件进入版本库。

$ git add README.md 
$ git commit -m "Merge from Zhang" 

也可以尝试diff唤起p4merge工具:

$ git difftool HEAD README.md 

参考资料

https://gist.github.com/IvanCl4udio/b606735bedcdcdea7cb7a9790d96ca74

git
朗读
赞(0)
赞赏
感谢您的支持,我会继续努力哒!
版权属于:

MetMan's Blog

本文链接:

https://blog.metman.top/index.php/archives/169/(转载时请注明本文出处及文章链接)

评论 (0)

互动读者

标签云

最新回复

  1. tqymnonccc打酱油
    2024-09-27
  2. toibdpojay打酱油
    2024-09-22
  3. yvctxyevvw打酱油
    2024-09-22
  4. frezhwzwuq打酱油
    2024-09-22
登录
X
用户名
密码