当前位置: 首页 > 工具软件 > GitDiff > 使用案例 >

git difftool 之 vimdiff

廖琨
2023-12-01

git difftool 之 vimdiff

1. vimdiff的使用

1.1 What is vimdiff

在类nuix平台,我们希望对文件之间的差异之间快速定位,希望能够很容易的进行文件合并……。

可以使用Vim提供的diff模式,通常称作vimdiff,就是这样一个能满足所有这些需求,甚至能够提供更多的强力工具。

1.2 启动方法

首先保证系统中的diff命令是可用的。Vim的diff模式是依赖于diff命令的。Vimdiff的基本用法就是:

$ vimdiff FILE_LEFT FILE_RIGHT

或者

$ vim -d FILE_LEFT FILE_RIGHT
1.3 常用命令

跳转到下一个diff点:使用]c命令

跳转到上一个diff点:使用[c命令

如果希望手工修改某一行,可以直接使用通常的vim操作进行修改。

如果希望在两个文件之间来回跳转,可以用下列命令序列:Ctrl-w,w

如果想交换上/下、左/右两个分隔窗口的位置,可以使用 命令序列:Ctrl-w,r

如果希望把一个差异点中当前文件的内容复制到另一个文件里,可以使用命令:dp (diff put)

如果希望把另一个文件的内容复制到当前行中,可以使用命令:do(diff obtain)

在修改一个或两个文件之后,vimdiff会试图自动来重新比较文件,以便实时地反映比较结果。但是有时候会处理失败,这个时候就需要手工来刷新::diffupdate

zo (folding open) 打开折叠代码。之所以用z这个字母,是因为它看上去比较像折叠着的纸。

zc (folding close) 重新折叠起来。


2. 使用vimdiff 作为 git difftool

2.1 关于git difftool

git diff命令可以用来显示文件差异。

git difftool命令可以使用外部工具来显示文件差异。可使用–extcmd参数指定具体的diff工具:

$ git difftool --extcmd vimdiff FILE_NAME
2.2 设置difftool默认使用vimdiff
$ git config --global diff.tool vimdiff
$ git config --global difftool.prompt false  # 设置difftool使用vimdiff时不弹出二次提示
2.3 运行git difftool

如果不加具体的文件,那么默认是一个一个的比对文件。可使用:qa退出单个文件,如果想使用:cq退出整个比对,需要增加如下参数:

$ git config --global difftool.trustExitCode true
2.4 总结

此时git diff一样可以使用,它使用的还是默认的格式,git difftool使用的是vimdiff显示。

可以使用git difftool --staged查看暂存区的修改。

可以使用git difftool commit1-sha commit2-sha在两次提交之间比较。

 类似资料: