vim-fugitive side-by-side git diffは、ステージングされていないファイルの差分を表示するのに最適です。
Vim-fugitiveを使用してgit diffを実行するにはどうすればよいですか
現在のファイルとインデックスの違い
:Gdiff :0
現在のファイルとその他の[リビジョン]の違い
:Gdiff [revision]
現在のファイルと現在のファイル3コミット前の差分:
:Gdiff ~3
: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>
Tim Popeのunimpaired.vim
プラグインをお勧めします。
その構成で、私のワークフローは次のとおりです。
<Leader>gl
は履歴を表示します
]q
および[q
はバージョン間を移動します(unimpaired.vim)
<Leader>Gd
を開いてdiff
:q
で終了diff
<Leader>ge
で作業コピーに戻ります。
上記の回答に追加:
別のブランチから特定のファイルの差分を取得したい場合
Gdiff branch_name:path/to/dir/filename.txt
:Glog --
または:Glog -- %
(現在のファイル用)が使用されている場合、差分を表示する方法をここにドロップします。
:Glog --
:cw
コミットのリストを開く<c-w>gf
および差分が新しいタブで開かれます:tabclose
は、タブを閉じて、差分の前の状態を取得するだけですVimコマンドラインから必要なヘルプ:
h逃亡修正