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=2 "show the status line
set statusline=%-10.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>1 :diffget 1<CR> :diffupdate<CR>
map <silent> <leader>2 :diffget 2<CR> :diffupdate<CR>
map <silent> <leader>3 :diffget 3<CR> :diffupdate<CR>
map <silent> <leader>4 :diffget 4<CR> :diffupdate<CR>

注意: 设置hot key的时候,需要将<leader>替换为你需要设置的前导符号,例如如果设置 ",2" 为获取buffer 2 的内容,那么你需要将 <leader>设置为 ‘,‘

即:

map <silent> ,1 :diffget 1<CR> :diffupdate<CR>
map <silent> ,2 :diffget 2<CR> :diffupdate<CR>
map <silent> ,3 :diffget 3<CR> :diffupdate<CR>
map <silent> ,4 :diffget 4<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 配置及使用

时间: 2024-10-29 00:14:54

vimdiff vimmerge 配置及使用的相关文章

1. 初次运行 Git 前的配置

用户信息 第一个要配置的是你个人的用户名称和电子邮件地址.这两条配置很重要,每次 Git 提交时都会引用这两条信息,并随更新内容一起被永久纳入历史记录: $ git config --global user.name "dyh" $ git config --global user.email [email protected] 如果要在某个特定的项目中使用其他名字或者电邮,只要去掉 --global 选项重新配置即可,新的设定保存在当前项目的 .git/config 文件里. 文本编

git 使用详解(2)——安装+配置+获取帮助

安装 Git Git 有许多种安装方式,主要分为两种,一种是通过编译源代码来安装:另一种是使用为特定平台预编译好的安装包. 从源代码安装 若是条件允许,从源代码安装有很多好处,至少可以安装最新的版本. Git 的工作需要调用 curl,zlib,openssl,expat,libiconv 等库的代码,所以需要先安装这些依赖工具.在有 yum 的系统上 或者有 apt-get 的系统上,可以用下面的命令安装 `$ yum install curl-devel expat-devel gettex

使用git

0. 版本控制 版本控制是一种记录若干文件内容变化,以便将来查阅特定版本修改情况的系统(vcs). svn等是集中式版本控制,即服务器在单一机器上,每次checkout变化的文件,若机器故障,则有可能很难恢复.而git等则是分布式控制,相当于每次checkout都是一次完整的本地备份,则遇见故障也可以轻松恢复过去. 1. git特性 速度.设计简单.对非线性开发模式的强力支持(允许多个并行开发的分支).完全分布式.有能力高效管理大型项目如linux内核 2. 基础要点 • 直接快照,而非比较差异

【转】1.5 起步 - 初次运行 Git 前的配置

原文网址:http://git-scm.com/book/zh/v1/%E8%B5%B7%E6%AD%A5-%E5%88%9D%E6%AC%A1%E8%BF%90%E8%A1%8C-Git-%E5%89%8D%E7%9A%84%E9%85%8D%E7%BD%AE 1.5 起步 - 初次运行 Git 前的配置 初次运行 Git 前的配置 一般在新的系统上,我们都需要先配置下自己的 Git 工作环境.配置工作只需一次,以后升级时还会沿用现在的配置.当然,如果需要,你随时可以用相同的命令修改已有的配置

初次运行 Git ,我们需要怎么配置

很多入门Git 的同学可能比较迷惑初次运行 Git 前的配置.今天我们就来说说这个问题.一般在新的系统上,我们都需要先配置下自己的 Git 工作环境.配置工作只需一次,以后升级时还会沿用现在的配置.当然,如果需要,你随时可以用相同的命令修改已有的配置. Git 提供了一个叫做 git config 的工具(译注:实际是 git-config 命令,只不过可以通过 git 加一个名字来呼叫此命令.),专门用来配置或读取相应的工作环境变量.而正是由这些环境变量,决定了 Git 在各个环节的具体工作方

Mac、Linux更换命令行svn diff为P4Merge、vimdiff

2015-01-21 21:25:52 这里先把那个程序员大神的博客地址贴一下(PS:大神,我不是为了抄袭哦,真是怕自己忘记了),http://www.ccvita.com/445.html,里面还有很多文章,我是顺手搜索到浏览了下,还有大神的减肥照片呢.嘻嘻! 今天学习git的时候,说可以自己定义一个merge和diff程序来替换git diff命令执行时默认的diff程序,正好我最近天天在mac的Terminal上敲打着svn diff,就想尝试能不能把svn的默认diff也替换掉,可是又不

Git安装配置及基本使用(windows)

http://www.open-open.com/lib/view/open1428900970330.html 安装git 1)windows 安装msysgit,下载地址:http://msysgit.github.io/ 安装的时候,基本选择默认设置,但是: 在Adjusting your PATH environment页,勾选Run Git from the Windows Command Prompt 2)ubuntu 用命令“git --version”查看是否已安装,且版本为1.

重新配置SSH远程服务端

为了提高SSH远程访问安全需要重新配置/etc/ssh/sshd_config文件,需要修改如下几点. 操作之前说明一下/etc/ssh目录下有 sshd_config 与 ssh_config 两个相似文件,两个文件区别: - sshd_config: 这是sshd服务器系统的配置文件 - ssh_config: 这是ssh客户端系统的配置文件 所以我们要修改的是带有 d 的sshd_config 服务器系统配置文件     需修改的文件内容: 1) #Port 22  // 远程访问端口 2

初次运行 Git 前的配置

一般在新的系统上,我们都需要先配置下自己的 Git 工作环境.配置工作只需一次,以后升级时还会沿用现在的配置.当然,如果需要,你随时可以用相同的命令修改已有的配置. Git 提供了一个叫做 git config 的工具(译注:实际是 git-config 命令,只不过可以通过 git 加一个名字来呼叫此命令.),专门用来配置或读取相应的工作环境变量.而正是由这些环境变量,决定了 Git 在各个环节的具体工作方式和行为.这些变量可以存放在以下三个不同的地方: /etc/gitconfig 文件:系