Git:git add -iまたはgit add -eを使用するとより多くのコンテキストを表示しますか?


99

大きなファイルの一部を選択的にコミットしているので、各ハンクのコンテキストをもっと確認したいと思います。これは可能ですか?

回答:


127

短い答え:いいえ。

git diff持っている-U<n>あなたは、変更の周りに表示するように行数をカスタマイズすることを可能にするオプションを選択します。たとえば、git diff -U5 ...5行のコンテキストが表示されます。私の知る限り、対話モードでの差分表示に使用できるそのようなオプションはありません。


7
-U<infinity>ファイル全体を表示するオプションはありますか?(または多数「十分に良い」とは?)
titaniumdecoy

2
git diff -U<n>変更された各行の両側でinの番号が使用されていることを述べておきます。したがって、1行を変更したgit diff -U5場合、11行が表示されます(1行がファイルの終わりの先頭にない場合)
ArtOfWarfare

4
これがためにあるgit diffではないためgit add --patchgit add --interactive
0xcaff

1
@titaniumdecoy、私は別の質問のように、その投稿をstackoverflow.com/questions/28727424/...
アレクサンドルLevchuk

3
まだ解決策はありませんか?
Vitaly Zdanevich 2018年

2

確認のために、これは2019年にはまだ不可能です。

のような外部ツールjjlee/git-meld-indexが役立ちます:

git-meld-index実行meld-またはその他のgit difftool( kdiff3diffuseなど) - (もgitのステージング領域として知られている)gitのインデックスに対話的に、ステージの変化にあなたをできるようにします。

これはgit add -p、およびの機能に似ていますgit add --interactive

場合によっては、meldはやのgit add -pようなツールのステージング機能よりも使いやすく/速いgit guiです。
これは、meldを使用すると、たとえば次のことが可能になるためです。

  • より多くのコンテキストを参照してください
  • 行内差分を見る
  • 手で編集して「ライブ」差分更新を確認(キーを押すたびに更新)
  • nスキップしたいすべての変更に「」と言わずに変更に移動する
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.