[解決済み】vimdiff ですべての `git diffs` を表示する。
2022-04-19 04:58:25
質問
設定方法
git diff
を使用して vimdiff にラップします。
Vimdiffを使ったGit Diff
"をガイドに、変更のあるファイルが多くない限り期待通りに動作しています。
複数のファイルに変更があるときに
git diff
というメッセージが表示され、最初のファイルを開き、vimdiff の最初のインスタンスを終了した後、次のメッセージが表示されます。
external diff died, stopping at filename
これは、私が慣れている動作とは全く異なるものです。 過去にSVNで同様の設定をしていたことがありますが、複数のファイルに対して差分を取る場合、最初のファイルを確認した後、書き込みと終了のために
:wq
で、差分のある次のファイルが開かれる。
Gitではこのようなことはありません。試しに
:n[ext]
しかし、この方法では左側のウィンドウに元のファイルが表示されないため、変更されたバージョンとの差分を取ることができません。
解決方法は?
git config --global diff.tool vimdiff
git config --global difftool.prompt false
タイピング
git difftool
は期待通りの動作をします。
ナビゲーションコマンドです。
-
:qa
を実行すると、何も保存せずにチェンジセット内の次のファイルに移動します。
エイリアシング(例)
git config --global alias.d difftool
...と入力すると
git d
でvimdiffを起動します。
高度な使用例。
- デフォルトでは、git は -R オプションを付けて vimdiff を呼び出します。git config --global difftool.vimdiff.cmd 'vimdiff "$LOCAL" "$REMOTE"' でオーバーライドすることができます。これにより、vimdiffが書き込み可能なモードで開かれ、差分を取りながら編集できるようになります。
-
:wq
で、vim は変更点を保存したチェンジセット内の次のファイルへ巡回します。
関連
-
[解決済み] Git で直近のローカルコミットを取り消すには?
-
[解決済み] Gitブランチをローカルやリモートで削除するには?
-
[解決済み] git pull」と「git fetch」の違いは何ですか?
-
[解決済み] コミット前に 'git add' を取り消すにはどうすればよいですか?
-
[解決済み] リモートのGitブランチをチェックアウトするには?
-
[解決済み] Git リポジトリを以前のコミットに戻すにはどうすればよいですか?
-
[解決済み] 現在のGit作業ツリーからローカル(未追跡)ファイルを削除する方法
-
[解決済み】"git pull" でローカルファイルを強制的に上書きするには?
-
[解決済み] Git で最新のコミットを新しいブランチに移動する
-
[解決済み】ローカルのGitブランチの名前を変更するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】git rev-parseは何をするのですか?
-
[解決済み】GitHub: クローンには成功したが、チェックアウトに失敗した
-
[gitコミット失敗の解決] 現在のブランチの先端が後ろにあるため、更新が拒否されました。
-
[解決済み】gpgがデータの署名に失敗した fatal: failed to write commit object [Git 2.10.0].
-
[解決済み】Git Push Error: リポジトリデータベースにオブジェクトを追加する権限が不足しています。
-
[解決済み】マージが終了していません(MERGE_HEADは存在します)。
-
[解決済み] Git エラー : 'upstream' は git リポジトリでないようです。
-
[解決済み] Gitのフォルダ構造で変更・追加されたファイルのみをエクスポートする機能
-
[解決済み] ssh-keygen' は内部コマンドまたは外部コマンドとして認識されません。
-
[解決済み] なぜ "git difftool" はツールを直接開けないのですか?