git,vimdiff和dirdiff [英] git, vimdiff and dirdiff

查看:401
本文介绍了git,vimdiff和dirdiff的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用vimdiff + dirdiff.vim 在Vim中使用Git版本的多个文件。



对于Mercurial,可以使用 mercurial extdiff 扩展名。



我在网上发现的将Vim与Git diff集成的唯一方法是使用vimdiff在单个文件中,如此文所述。



有没有人知道如何使用vimdiff + dirdiff + git?

解决方案

版本1.7.11



git-diffall 是我需要的,非常感谢。在这个页面的帮助下,了解有关git difftool和这个 关于从命令行运行vim + dirdiff,我写了 $ HOME / .gitconfig as:

  [diff] 
工具=默认difftool

[difftool默认difftool]
cmd = vim -f'+ next''+执行\DirDiff \argv(0)argv(1)'$ LOCAL $ REMOTE

[ difftool]
prompt = false

git-diffall 在我的 PATH 中,我可以比较工作目录的分支 dev

  git diffall dev 

如果我想从Vim持续修改工作目录, - copy-back 也是我需要的:

  git diffall --copy-back dev 



由于git版本1.7.11



自版本 1.7.11 ,git difftool学会了--dir-diff选项,它简化了一些事情, git-diffall 不再需要。



.gitconfig 包含:

  [差异] 
工具=默认差异工具
[difftooldefault-difftool]
cmd = vim -f'+ next''+ execute \DirDiff \argv(0)argv(1)'$ LOCAL $ REMOTE'+语法关闭'
pre>

例如工作目录与分支 dev 的区别在于:

  git difftool -d dev 


I'm trying to use vimdiff+dirdiff.vim to diff inside Vim multiple files versionned with Git.

For Mercurial, it is possible with mercurial extdiff extension.

The only way I found on the web to integrate Vim with Git diff is to use vimdiff on a singe file, as describe in this post.

Does any one know how to use vimdiff+dirdiff+git?

解决方案

Before git version 1.7.11

git-diffall is what I need, thanks a lot. With help of this page about git difftool and this one about running vim+dirdiff from command line, I wrote my $HOME/.gitconfig as:

[diff]
  tool = default-difftool

[difftool "default-difftool"]
  cmd = vim -f '+next' '+execute \"DirDiff\" argv(0) argv(1)' $LOCAL $REMOTE

[difftool]
  prompt = false

After putting git-diffall in my PATH, I can diff for example working directory with branch dev with:

git diffall dev

The --copy-back is also what I need if I want to modify the working directory persitantly from Vim:

git diffall --copy-back dev

Since git version 1.7.11

Since version 1.7.11, "git difftool" learned the "--dir-diff" option that simplify things and git-diffall is no longer needed.

.gitconfig contains:

[diff]
  tool = default-difftool
[difftool "default-difftool"]
  cmd = vim -f '+next' '+execute \"DirDiff\" argv(0) argv(1)' $LOCAL $REMOTE '+syntax off'

And diffing for example working directory with branch dev is done with:

git difftool -d dev

这篇关于git,vimdiff和dirdiff的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆