vimdiff vimmerge 配置及使用
1 Set up vimdiff
The vimdiff as a merge tool will display several buffers to show the yours/theirs/original changes.
The key point is to set up the vimdiff so that the buffer number in the vimdiff status line is visible.
First, add following code into your ~/.vimrc
set laststatus= "show the status line
set statusline=%-.3n "buffer number
Second, if you know the buffer number, you can use hot key like ",2" (press comma first, then press two as quickly as possible) to pull change from buffer number two.Add below code into your ~/.vimrc to set up hot keys:
map <silent> <leader> :diffget <CR> :diffupdate<CR>
map <silent> <leader> :diffget <CR> :diffupdate<CR>
map <silent> <leader> :diffget <CR> :diffupdate<CR>
map <silent> <leader> :diffget <CR> :diffupdate<CR>
注意: 设置hot key的时候,需要将<leader>替换为你需要设置的前导符号,例如如果设置 ",2" 为获取buffer 2 的内容,那么你需要将 <leader>设置为 ','
即:
map <silent> , :diffget <CR> :diffupdate<CR>
map <silent> , :diffget <CR> :diffupdate<CR>
map <silent> , :diffget <CR> :diffupdate<CR>
map <silent> , :diffget <CR> :diffupdate<CR>
2 Set up git tool
To use vimdiff as default merge tool:
git config --global merge.tool vimdiff
git config --global mergetool.prompt false
3 Resolve merge conflict
Bob and Chen has edited same files. So please merge branch "bob" into "master" at first. Then merge from "chen". The merge conflicts will be created.
git branch # double check that we got three local branches: master, bob, chen
git checkout master # set master branch as main branch
git merge bob #this is ok, because bob is the first one to merge changes
git merge chen # now some conflicts created because Bob has already edited and merged same files
Here is the explanation of each buffer:
| Buffer | Explanation | Buffer Number |
|---|---|---|
| THEIRS | contents of the file on the current branch | 2 |
| BASE | common base for the merge | 3 |
| YOURS | contents of the file to be merged. | 4 |
| MERGED | The file containing the conflict markers. You need edit and commit this file. | 1 |
You could use hot key ",2" (comma + two) ",3" (comma+three) ",4" (comma+four) to pick the content you want to use
(either THEIRS or BASE or YOURS) to replace the marked conflict in MERGED buffer whose buffer number is one.
Or you can edit the content directly in MERGED buffer. Anyway, git only care about the the file binding to MERGED buffer.
Any other buffer will be ignored by git.
You can use hot key "[c" and "]c" to navigate to previous/next conflict (including the conflict resolved by git automatically) in current file which is binding to MERGED buffer.
After finishing editing of the conflicting file in MERGED buffer, you can use hot key ":xa" to exit vimdiff. Git will open next conflicting file with vimdiff automatically.
When you have resolved all the conflicts, follow the hint of git to commit your changes.
vimdiff vimmerge 配置及使用的更多相关文章
- Git使用指南(1)——Git配置命令
配置用户信息 git config --global user.name bongxin git config --global user.email bongxin@yeah.net 配置文本编辑器 ...
- Linux系统(Centos)下安装nodejs并配置环境
总结Centos下安装nodejs并配置环境,记录成功安装的方法.推荐的安装方法是利用已编译的二进制文件安装,不推荐使用源码的形式安装,一是源码安装比较麻烦,二是需要自行下载编译浪费时间. 1.安装n ...
- git 使用详解(2)——安装+配置+获取帮助
安装 Git Git 有许多种安装方式,主要分为两种,一种是通过编译源代码来安装:另一种是使用为特定平台预编译好的安装包. 从源代码安装 若是条件允许,从源代码安装有很多好处,至少可以安装最新的版本. ...
- git基本操作
一.在Windows平台上安装Git,可以下载一个msysGit的安装包,点击exe即可安装运行.安装包下载地址:https://git-for-windows.github.io/备注:git命令行 ...
- 【使用git】初识git
0. 版本控制 版本控制是一种记录若干文件内容变化,以便将来查阅特定版本修改情况的系统(vcs). svn等是集中式版本控制,即服务器在单一机器上,每次checkout变化的文件,若机器故障,则有可能 ...
- windows上git安装
Git的官方网站:http://git-scm.com 1.下载:http://msysgit.github.com/ 2.安装 3.配置 用户名.邮箱 这个很重要将来项目提交的账号 $ git ...
- git起步
关于版本控制 什么是版本控制?为什么要版本控制? 版本控制是记录文件内容变化,以便在将来查阅特定版本的系统.有了版本控制,我们就可以将某个文件或是整个项目回退到之前的某个时间段,查看现在和之前相比项目 ...
- Ubuntu12.04 GIT安装和使用
一.安装GIT和配置GIT 1.安装GIT apt-get install git 2.配置GIT ##配置用户信息 git config --global user.name "John ...
- 如何在 CentOS7 中安装 Nodejs
一.安装Nodejs 安装版本:10.13.0 1.安装必要的编译软件包 yum -y install gcc gcc-c++ 2.从源码下载Nodejs cd /usr/local/src wget ...
随机推荐
- 【转】VS2013 C#WinForm程序构造界面拖动控件NumericUpDown时"未响应“是有道词典惹的祸
很久之前遇到过因为金山词霸和其他软件冲突导致的程序无响应的情况. 没想到今天情况重现,VS2013在可视化编辑NumbericUpDown控件的时候,又出现了”未响应“,发现又是有道词典惹的祸. 可见 ...
- Unix commands in Mac OS X
参考:http://www.renfei.org/blog/mac-os-x-terminal-101.html One command line includes 4 parts: Command ...
- python实现字体闪图
!/usr/bin/env python from future import print_function import os.path import sys from optparse impor ...
- catalan数及笔试面试里那些相关的问题(转)
一.catalan数由来和性质 1)由来 catalan数(卡塔兰数)取自组合数学中一个常在各种计数问题中出现的数列.以比利时的数学家欧仁·查理·卡塔兰 (1814–1894)命名. 卡塔兰数的一般项 ...
- 测试相关、sdk卡读取
测试: monkey 猴子 测试整个系统 adb shell monkey -v 1000 (-v 指定模拟测试的事件数量) 测试某个程序 adb shell monkey -p <程序的包名& ...
- .NET 验证码/验证图片
/// <summary> /// 验证码类 /// </summary> public class Rand { #region 生成随机数字 /// <summary ...
- 运行测试Caused by: java.lang.UnsatisfiedLinkError: no attach in java.library.path错误解决
解决办法:看到错误里面有个Caused by,说我的jdk运行到了32位的了,于是我查看环境变量,发现是昨天设置成32位的没有设置回来,于是设置回64位的jdk就ok了
- POJ - 1159 Palindrome(dp-回文变形)
d.求对字符串最少添加几个字符可变为回文串. s. 法1:直接对它和它的逆序串求最长公共子序列长度len.N-len即为所求.(N为串长度) 因为,要求最少添加几个字符,我们可以先从原串中找到一个最长 ...
- mysql触发器查看
查询触发器列表 SHOW TRIGGERS; 但是这个无法查询到没有权限的触发器,可以试试这个 select * from sym_trigger where source_table_name li ...
- Oracle 的简单描述
在 Oracle 开发中,客户端把 SQL 语句发送给服务器,服务器对 SQL 语句进行编译.执行,把执行的结果返回给客户端. Oracle SQL 语句由如下命令组成: 数据定义语言( DDL) ...