前幾天和同窗協同開發的時候遇到了合併衝突問題,git的默認gui又只能Use remote edtion
orUse local edtion
沒法進行更加細緻的合併。因此我就想配置一個合併工具。git
搜索了一番決定使用WinMerge,而後就展開了爲期兩天的探索。github
搜索Git和WinMerge就會出來不少配置教程,我嘗試了不少都不行,後來我發現了問題的所在。先說一下我是怎麼作的。windows
個人環境是32位win7+Git-for-windows2.4.5+WinMergebash
首先安裝好WinMerge,這一步沒什麼好說的,就是點擊下一步就好。記得要點那個把WinMerge添加到環境變量裏的選項,若是沒選的話下一步須要修改profile文件。工具
而後配置Git Bash的PATH
變量,以前不少教程都在說這個PATH
可是都不甚詳細。我摸索了一下(怪我本身Linux知識不熟),直接上代碼你們應該能看明白。export PATH="$PATH:/c/Program Files/WinMerge/"
。
不過還有一個問題就是上面那句命令只能在不關閉bash前生效,能夠去../Git/etc/
裏面修改profile文件,在最後一行加上上面那行命令就行。ui
第三步須要下載其餘文件,因爲個人Git版本是2.4.5,mergetool裏面並無添加對winmerge的支持,可是自從2.5.0以後Git添加了對winmerge的支持,因此我就從Git在github的主頁上下載了最新的源碼,從源碼的/mergetool/
目錄下面copy了一份winmerge文件到../Git/mingw32/libexec/git-core/mergetool/
下面。若是是Git2.x一下的版本目錄應該是../Git/libexec/git-core/mergetool/
。code
完成這三步以後就能夠嘗試一下了,在bash裏面輸入git mergetool --tool-help
。
這時候bash就會列出可以使用的工具,若是winmerge在可用的那一欄裏,就標誌着能夠用了。這時候還得讓git知道你要用winmerge了。還須要在bash裏面輸入如下命令:git config --global merge.tool winmerge
。教程
可是!可是! 這時候git difftool
仍是不能打開winmerge,可是git mergetool
已經能夠用winmerge了。更詳細的緣由尚未研究。
不要吐槽是由於沒有設置diff.tool,設置了也不行,因此上面就沒說。開發