Git做合并时难免会发生冲突,发生冲突我们可以使用git的mergetool来处理。
在使用mergetool前需要先了解下Git用于处理冲突的几个概念:
- LOCAL - 本机在当前分支下文件的head
- REMOTE - 在远程将要合并到LOCAL当前分支的head
- BASE - the common ancestor(s) of LOCAL and BASE.
- MERGED - 合并后的head对象
设置mergetool所使用的编辑器
调用mergetool会打开一个用于处理冲突的GUI编辑工具,可以使用git config来设置mergetool使用的编辑器
$ git config merge.tool vimdiff
查看mergetool支持的编辑器
$ git mergetool --tool-help
这些编辑分为两种:命令行编辑器和GUI编辑器。
命令行编辑器
-
基于Emacs
:Ediff
基于Vim
: vimdiff
GUI编辑器
tortoisemerge
使用mergetool
$git mergetool