【发布时间】:2013-02-28 06:17:06
【问题描述】:
有没有办法使用 vimdiff 来比较文件的当前版本和 相同 文件 n git 版本之前的版本?
例如,我正在处理 master 分支上的文件 foo.c。我想在 master~10 的 foo.c 和 foo.c 之间做一个 vimdiff,从旧版本中复制一两行。
PS 我知道 git cherry pick,但这是针对整个文件,而不仅仅是几行。
【问题讨论】:
有没有办法使用 vimdiff 来比较文件的当前版本和 相同 文件 n git 版本之前的版本?
例如,我正在处理 master 分支上的文件 foo.c。我想在 master~10 的 foo.c 和 foo.c 之间做一个 vimdiff,从旧版本中复制一两行。
PS 我知道 git cherry pick,但这是针对整个文件,而不仅仅是几行。
【问题讨论】:
呃!实时调频。我添加了一个关于这不是 git difftool 用例的 PPS,然后开始想知道“git difftool 到底做了什么......”。
解决办法是:
git difftool master master~10 -- foo.c
也就是说,假设 difftool 已经在 ~/.gitconfig 中正确设置:
[diff]
tool = vimdiff
[difftool]
prompt = false
【讨论】:
对于在 Vim 下使用 Git,fugitive.vim - A Git wrapper so awesome, it should be illegal 插件非常有用。看看吧!
vimdiff 可以用:Gdiff [revision].
【讨论】:
在不覆盖 git 配置的情况下工作的解决方案是
vimdiff file.tex <( git show master~2:file.tex )
【讨论】:
【讨论】: