使用 Beyond Compare 來 merge 你的代碼

git下的mergetool配置

在使用 git merge 命令合併分支遇到衝突的時候,雖然能夠經過 git diff 來查看衝突的具體信息,並查找衝突依次解決,可是當衝突較多的時候尋找每一個文件的衝突標記去解決可能會比較麻煩,git command 提供了
difftoolmergetool 命令來支持經過其餘軟件輸出 diff 的分析結果以及進行文件的 merge,下面僅以你們經常使用的比較工具 Beyond Compare 爲例,簡述 difftoolmergetool 的配置git

1.查看當前系統支持的merge插件

git difftool --tool-help 

git mergetool --tool-help

經過上面的命令能夠查看當前系統可使用的和支持的 git diffgit merge 插件,運行結果如圖,git提供了對多種比較工具的支持windows

可用的工具列表

其中 bc3 即對應 Beyond Compare 版本三、4工具

2.difftool / mergetool 配置

依賴

macox 須要安裝 bc 的命令行工具(在 bc 菜單中運行 Install Command Line Tools 便可)spa

配置

macox

difftool插件

git config --global diff.tool bc3

mergetool命令行

git config --global merge.tool bc3   //將bc設置爲默認mergetool
git config --global mergetool.bc3 trustExitCode true   //設置退出bc時完成merge

windows

difftoolcode

git config --global diff.tool bc3 
git config --global difftool.bc3.path "bcomp.exe的路徑"

mergetool圖片

git config --global merge.tool bc3 
git config --global mergetool.bc3.path "bcomp.exe的路徑"

3.使用

提交 commit 後執行 git merge 如無衝突即自動合併,若是合併兩個分支產生衝突沒法自動完成 merge 時(如圖)便可使用 git mergetool(前面設置了 bc 爲默認 mergetool )調起 Beyond Compare (如需運行其它比較工具 執行 git mergetool –tool=工具名 便可 例如 git mergetool –tool=opendiffrem

圖片描述

有多個文件的話會依次打開,隨後使用Beyond Compare進行文件的merge保存便可(如圖)get

圖片描述

其中當前所在分支會做爲local(左側),merge的分支會做爲remote(右側)

difftool 的使用與 mergetool 相似 在 commit 以後 運行 git difftool 或者 git difftool+文件名 既可調起 Beyond Compare 來查看 diff 的分析結果

補充:

windows 若是出現雖然安裝了bc 可是做爲 mergetool 不可用的狀況 能夠經過修改用戶目錄下的 gitconfig 追加 difftool 和 mergetool 的配置

內容以下,mergetool 的名字能夠自定,路徑修改成本地 bcomp.exe 的路徑便可

[diff]
tool = bc4
[difftool "bc4"]
cmd = \"c:/program files (x86)/beyond compare 4/bcomp.exe\" \"$LOCAL\" \"$REMOTE\"
[merge]
tool = bc4
[mergetool "bc4"]
cmd = \"c:/program files (x86)/beyond compare 4/bcomp.exe\" \"$LOCAL\" \"$REMOTE\" \"$BASE\" \"$MERGED\"
trustExitCode = true
相關文章
相關標籤/搜索