Git_配置merge工具

Git Merge的常用工具有kdiff3和p4Merge。
下面就Windows系统和OS X系统分别说明如果配置这两种工具。

OS X系统
———————————————–

1、创建一个merge包装脚本,名字叫作extMerge,让它带参数调用p4merge二进制文件

$ sudo vim /usr/local/bin/extMerge

内容为

#!/bin/sh
/Applications/p4merge.app/Contents/MacOS/p4merge $*

2、接着创建diff包装脚本

$ sudo vim /usr/local/bin/extDiff

内容为

#!/bin/sh
[ $# -eq 7 ] && /usr/local/bin/extMerge "$2" "$5"

3、确认这两个脚本是可执行的

$ sudo chmod +x /usr/local/bin/extMerge
$ sudo chmod +x /usr/local/bin/extDiff

4、配置~/.gitconfig

$ git config --global merge.tool extMerge
$ git config --global mergetool.extMerge.cmd \
'extMerge "$BASE" "$LOCAL" "$REMOTE" "$MERGED"'
$ git config --global mergetool.trustExitCode false
$ git config --global diff.external extDiff

或者直接编辑~/.gitconfig文件如下

[merge]
  tool = extMerge
[mergetool "extMerge"]
  cmd = extMerge "$BASE" "$LOCAL" "$REMOTE" "$MERGED"
  trustExitCode = false
[diff]
  external = extDiff

如果想替换kdiff3作为默认的merge工具,则修改extMerge脚本,把p4Merge替换成kdiff3

$ sudo vim /usr/local/bin/extMerge

内容为

#!/bin/sh
/Applications/kdiff3.app/Contents/MacOS/kdiff3 $*

5、配置好了之后就可以通过命令行调用工具了。以diff为例

▼一个一个的diff

git diff
git difftool

▼一起diff(kdiff3可以,p4Merge不可以)

git difftool --dir-diff
git difftool -d


Windows系统
———————————————–

git config --global diff.tool p4merge
git config --global difftool.p4merge.cmd "'D:\Program Files\Perforce\p4merge.exe' $LOCAL $REMOTE"

git config --global merge.tool p4merge
git config --global mergetool.p4merge.cmd "'D:\Program Files\Perforce\p4merge.exe' $PWD/$BASE $PWD/$REMOTE $PWD/$LOCAL $PWD/$MERGED"
git config --global mergetool.p4merge.trustExitCode false
git config --global mergetool.keepBackup false

同样,如果想要以kdiff3作为默认的merge工具,可以添加

difftool.kdiff3.cmd
mergetool.kdiff3.cmd
mergetool.kdiff3.trustExitCode false

并把

diff.tool
merge.tool

替换为kdiff3

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值