您当前的位置:首页 > 计算机 > 软件应用 > 开发工具(IDE)

使用 Emacs ediff 作为 git merge 工具

时间:12-14来源:作者:点击数:

之前讲了 使用 Emacs Ediff 作为 git diff 工具,现在来说说如何用 Emacs ediff 作为 git merge 工具

1、创建一个脚本来帮助你调用 Ediff 进行文件比较。

#!/bin/bash

base=$1
local=$2
remote=$3
merged=$4

if [ -r $base ];then
    emacsclient -a "" -c -n --eval "(require 'ediff)" --eval "(ediff-merge-with-ancestor \"$local\" \"$remote\" \"$base\" nil \"$merged\")"
else
    emacsclient -a "" -c -n --eval "(require 'ediff)" --eval "(ediff-merge \"$local\" \"$remote\" nil \"$merged\")"
fi

注意我这里使用了 emacsclient ,避免每次都要打开一个 Emacs 进程。

emacsclient 后面的 -a 参数表示如果没有启动 Emacs daemon 的话,则自动启动一个。 所以你无需事先启动 Emacs daemon。

2、用 git config 配置 mergetool

这里假设上一步创建的脚本为 ~/bin/ediff_merge.sh,那么可以这么配置

git config --global merge.tool ediff
git config --global mergetool.ediff.cmd '~/bin/ediff_merge.sh "$BASE" "$LOCAL" "$REMOTE" "$MERGED"'
git config --global mergetool.prompt false
# git config --global mergetool.ediff.trustExitCode true

这就搞定了,试试运行 git mergetool 看看效果吧。

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门
本栏推荐