最近使用git時發現git diff 不方便,尤其是代碼改動較大的時候,需要分成很多行,通過空格翻頁對比,用戶體驗極差
網上搜了下發現有個工具 diffmerge 貌似挺好用
下載地址
http://sourcegear.com/diffmerge/downloaded.php
按照網上配置時總是報錯,解決不了,最後自己搞定了,記錄一下,已經在多個電腦測試OK,希望對大家有幫助
1、根據自己電腦下載完默認無腦安裝diffmerge即可,我在win7和win10都測試過
2、配置環境變量,將sgdm.exe的路徑C:\Program Files\SourceGear\Common\DiffMerge 添加到windows環境變量的path下
win7系統是我手動添加的,win10貌似自動添加好了。總之驗證一下
3、Git裏做些配置
複製以下代碼
git config --global diff.tool diffmerge
git config --global difftool.diffmerge.cmd 'sgdm "$LOCAL" "$REMOTE"'
git config --global merge.tool diffmerge
git config --global mergetool.diffmerge.cmd 'diffmerge --merge --result="$MERGED" "$LOCAL" "$(if test -f "$BASE"; then echo "$BASE"; else echo "$LOCAL"; fi)" "$REMOTE"'
git config --global mergetool.diffmerge.trustExitCode true
git config --global mergetool.keepBackup false
直接在Git bash裏粘貼這些代碼就行
執行完,你打開電腦裏 .gitconfig 文件,可以看到你配置好的東東
4、如果你代碼有改動,這時候你在git bash 裏輸入git difftool。多半會報錯如下
解決辦法:
[difftool "diffmerge"]
cmd = sgdm \"$LOCAL\" \"$REMOTE\"
// 改爲(注意rogram\\ Files中間的兩個斜槓,很重要!否則繼續報錯,很多教程沒寫這點):
[difftool "diffmerge"]
cmd = C:/Program\\ Files/SourceGear/Common/DiffMerge/sgdm.exe \"$LOCAL\" \"$REMOTE\"
5、解決中文亂碼問題
git difftool
點y,彈出界面,做如下選擇
退出當前界面,重新git difftool
一切OK,可以正常使用啦!