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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章