web-dev-qa-db-ja.com

vim-fugitiveを使用してコミットのgit diffを表示するにはどうすればよいですか?

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

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

  • ステージングされたファイル?
  • gitリビジョンはありますか?
39
Sathish

現在のファイルとインデックスの違い

:Gdiff :0

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

:Gdiff [revision]

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

:Gdiff ~3
54
Peter Rincker

: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で作業コピーに戻ります。

26
AA.

上記の回答に追加:

別のブランチから特定のファイルの差分を取得したい場合

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

:Glog --または:Glog -- %(現在のファイル用)が使用されている場合、差分を表示する方法をここにドロップします。

  1. :Glog --
  2. :cwコミットのリストを開く
  3. コミットに移動すると、その情報と影響を受けるファイルが表示されます
  4. ファイルパスに焦点を当てる
  5. <c-w>gfおよび差分が新しいタブで開かれます
  6. :tabcloseは、タブを閉じて、差分の前の状態を取得するだけです
1
starikovs

Vimコマンドラインから必要なヘルプ:

h逃亡修正

0
woooha