我如何查看git diff的任何提交使用vim-逃犯



vim-fugitive side-by-side git diff用于查看未分级文件的diff。

如何使用vi -fugitive来获取diff

  • 上演了文件?
  • 有git版本吗?

当前文件与索引的差值

:Gdiff :0

当前文件与其他[revision]之间的差异

:Gdiff [revision]

当前文件与当前文件3次提交前的差异:

:Gdiff ~3

您可以使用:Glog获取当前文件的历史更改。您可以使用:cnext:cprevious在更改之间移动。当你碰到你想要比较的版本时,你可以使用:Gdiff。您可以关闭缓冲区:q退出vimdiff,并使用:Gedit退出历史日志。

这是我的。vimrc键盘配置:

  nnoremap <leader>gs :Gstatus<CR>
  nnoremap <leader>gc :Gcommit -v -q<CR>
  nnoremap <leader>ga :Gcommit --amend<CR>
  nnoremap <leader>gt :Gcommit -v -q %<CR>
  nnoremap <leader>gd :Gdiff<CR>
  nnoremap <leader>ge :Gedit<CR>
  nnoremap <leader>gr :Gread<CR>
  nnoremap <leader>gw :Gwrite<CR><CR>
  nnoremap <leader>gl :silent! Glog<CR>
  nnoremap <leader>gp :Ggrep<Space>
  nnoremap <leader>gm :Gmove<Space>
  nnoremap <leader>gb :Git branch<Space>
  nnoremap <leader>go :Git checkout<Space>
  nnoremap <leader>gps :Dispatch! git push<CR>
  nnoremap <leader>gpl :Dispatch! git pull<CR>

我推荐Tim Pope的unimpaired.vim插件。

有了这个配置,我的工作流程是:

<Leader>gl查看历史记录

]q[q在版本之间移动(unported .vim)

<Leader>gd打开diff

:q to end diff

<Leader>ge返回工作副本

加上上面的答案:

如果您想从另一个分支获取特定文件的diff

Gdiff branch_name:path/to/dir/filename.txt

如果使用:Glog --:Glog -- %(对于当前文件),我只是在这里放置我查看diff的方式:

  1. :Glog --
  2. :cw打开提交列表
  3. 导航到一个提交和它的信息以及受影响的文件显示
  4. 关注文件路径
  5. <c-w>gf和diff在新选项卡
  6. 中打开
  7. :tabclose关闭选项卡并获得diff之前的状态

最新更新