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