54

vim-fugitive side-by-side git diff は、ステージングされていないファイルの diff を表示するのに最適です。

vim-fugitive を使用して git diff を実行するにはどうすればよいですか

  • ステージングされたファイル?
  • 任意の git リビジョン?
4

4 に答える 4

75

現在のファイルとインデックスの差分

:Gdiff :0

現在のファイルと他の [リビジョン] との違い

:Gdiff [revision]

現在のファイルと現在のファイルの 3 コミット前の差分:

:Gdiff ~3
于 2013-03-12T19:44:55.363 に答える
38

:Glog現在のファイルの変更履歴を取得するために使用できます。:cnextまたはを使用:cpreviousして変更間を移動できます。比較したいバージョンにヒットしたら、 を使用できます:Gdiff。バッファを閉じて vimdiffを終了:qし、 で履歴ログを終了できます: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>

unimpaired.vimTim Pope によるプラグインをお勧めします。

その構成では、私のワークフローは次のとおりです。

<Leader>gl履歴を表示するには

]qバージョン間[qを移動する (unimpaired.vim)

<Leader>gd開くdiff

:q最後までdiff

<Leader>ge作業コピーに戻ります。

于 2015-03-07T16:16:20.077 に答える