git config merge.tool vimdiff # 指定vimdiff作为默认mergetool
git config merge.conflictsytle diff3 # 设定mergetool风格
git config mergetool.prompt false # 取消打开文件时的warning显示
git config mergetool.keepBackup false # 设置禁止生成orig
- 出现四个窗口
- 从左到右分别为
- 当前分支内容local
- 两个分支共同祖先内容base
- 要合并分支内容remote
- 下面为修改的窗口
- 直接修改
- 命令修改
:diffg RE " get from REMOTE
:diffg BA " get from BASE
:diffg LO " get from LOCAL
- 下一个冲突(]c)
- 使用<space>进入选择,j/k上下移动,<enter>选择
- 通用,无论是test环境出问题还是master都可以使用
- 提交记录整洁
- 太麻烦和繁琐了,涉及到很多分支,到时候需要一个一个删除
git rebase master # 此时在自己的分支上
- 提交记录整洁
- 操作简单
- 只能在master使用,不能在test上使用(会出大问题,因为本来是基于master的)
- 这个只能用于没有推送到远程分支情况下,不推荐
- 当分支出现冲突的时候,直接将merge master
git merge master # 此时在自己的分支上
- 和rebase底层原理是一样的,因此也有操作简单
- 只能在master使用
- 提交记录会变得诡异,自己的log和master的log合并了
- 简单方便
- 只能在test实现,不能在master操作
- 很容易导致直接在test分支开发的坏习惯
- 如果需要统一解决方式
- 如果需要最简单快速
- master 分支merge master
- test使用直接修改大法