【问题标题】:How can I diff two branches with fugitive?如何区分两个分支与逃犯?
【发布时间】:2012-10-29 13:26:40
【问题描述】:

在逃亡中,我可以通过:Gstatus 在新窗口中获取 git 状态,并在该窗口中对文件的 D 获取新拆分中的差异。

还可以使用:Glog 获取文件的所有版本,我可以使用:Glog -- 加载所有以前的提交。

我想做的是获得一个 Gstatus 窗口,用于两个分支的差异。例如我的 topicdevelopment 分支,这样我就可以区分所有已更改的文件。

是否有可能获得一个 交互式 窗口,其中包含在两次提交之间更改的所有文件?

【问题讨论】:

  • 正如 ZyX 所提到的,向逃犯添加命令以将git diff --name-status {REV1}..{REV2} 拉入窗口可能会很方便。或者,也许有一些更好的工作流程......将明星和观察任何魔法。

标签: git vim vim-fugitive


【解决方案1】:

由于 git 不支持两次修订之间的 mercurial/bazaar 状态,因此逃犯无法做到这一点。 Git 有 git diff --name-status 代替,但简单的 grep 显示此功能从未在逃犯中使用,除了在执行 :Gw 和朋友时检查某些文件是否干净(即未修改)。


如果你不怕有些实验性的代码,那么你可以试试我的aurum,它可以为你带来状态窗口

AuStatus rev topic wdrev development

并用C查看特定文件的vimdiff(默认关闭状态窗口,使用let g:aurum_statwincmd='k'避免)。

注意:使用 +python aurum 编译的 hg-git 和 vim 将使用更稳定的代码,因为 mercurial 是我使用的主要 VCS。


另一个想法是使用 vcscommand、mercurial/bazaar 和 hg-git/bzr-git。然后状态将被查看

VCSStatus -r topic -r development

(mercurial,不记得在集市上怎么做)。虽然我不熟悉 vcscommand,所以不能说它在状态缓冲区中提供的交互功能是否与 fugitive 或 aurum 一样多(似乎没有:nmap <buffer> 在 git status 缓冲区中什么都没有显示)。上面的代码应该可以根据文档工作,但我没有测试过。

【讨论】:

    猜你喜欢
    • 2016-06-19
    • 2017-09-19
    • 1970-01-01
    • 2014-07-24
    • 1970-01-01
    • 1970-01-01
    • 2012-09-03
    • 2021-03-13
    • 2020-06-10
    相关资源
    最近更新 更多