ファイルで git-diff を実行していますが、変更は長い行の最後にあります。
カーソルキーを使用して右に移動すると、色分けが失われ、行が整列しないため、変更の追跡が難しくなります。
その問題を防ぐ方法はありますか、それとも単に行を折り返すだけですか?
(mingw32経由でgit 1.5.5を実行)
git diff
の出力の表示は、使用しているページャーによって処理されます。
通常、Linuxでは、less
が使用されます。
GIT_PAGER
環境変数を設定することにより、gitに別のページャーを使用するように指示できます。ページングを気にしない場合(たとえば、端末でスクロールバックできる場合)、GIT_PAGER
を明示的に空に設定してページャーを使用して停止することができます。 Linuxの場合:
$ GIT_PAGER='' git diff
ページャーがなければ、行は折り返されます。
ターミナルがカラー出力をサポートしていない場合は、--no-color
引数を使用するか、git構成ファイルのカラーセクションにエントリを入力して、これをオフにすることもできます。
$ GIT_PAGER='' git diff --no-color
または、デフォルトのページャーとしてlessを使用する場合は、単に-S
diffを表示しているときに、lessでラッピングを再度有効にします。
git config
を使用して、ポケットベルをラップするように設定することもできます。
$ git config core.pager 'less -r'
現在のプロジェクトのページャー設定を設定します。
$ git config --global core.pager 'less -r'
すべてのプロジェクトのページャーをグローバルに設定します
Josh Diehl in a comment to this answer への完全なクレジットで、それにもかかわらず、これはそれ自体に対する答えであると思うので、それを追加する:
長い行の違いを確認する1つの方法は、Word指向の差分を使用することです。これは次の方法で実行できます。
git diff --Word-diff
この場合、大幅に異なるdiff出力が得られ、行内で何が変更されたかを具体的に示します。
たとえば、次のようなものを取得する代わりに:
diff --git a/test-file.txt b/test-file.txt
index 19e6adf..eb6bb81 100644
--- a/test-file.txt
+++ b/test-file.txt
@@ -1 +1 @@
-this is a short line
+this is a slightly longer line
次のようなものが表示される場合があります。
diff --git a/test-file.txt b/test-file.txt
index 19e6adf..eb6bb81 100644
--- a/test-file.txt
+++ b/test-file.txt
@@ -1 +1 @@
this is a [-short-]{+slightly longer+} line
または、これの代わりに色付けを使用します:
あなたはこれを得るかもしれません:
さて、あなたが本当に長い行を比較しているのであれば、あなたが最初に説明したページャーの状況にまだ問題があるかもしれません。しかし、これが新しいツールを提供し、行の変更点をより簡単に特定できることを願っています。
Lessをページャーとして使用し、行の折り返しを永続的にするには、単にfold-long-linesオプションを有効にします。
git config --global core.pager 'less -+S'
これにより、lessを使用しているときに入力する必要がなくなります。
乾杯
これをグーグルで検索しました。 GIT_PAGER='less -r'
私のために働く
Mac OSX:someone45の '-S'以外の答えはありませんが、実行されているものはほとんどありません。ワードラップを永続化するには、次のことが必要でした。
git config --global core.pager 'less -+$LESS -FRX'
Git 1.5.3以降( Sep 2007 )
--no-pager
オプションが利用可能になりました。
git --no-pager diff
git diffがページャーを使用しないようにするにはどうすればよいですか?
V2.1以降、ラップがデフォルトです
git config core.pager `fold -w 80 | less`
ここで、最初にgit diffをfoldにパイプし、次にlessにパイプします:ラップされ、ページの高さが少なくなり、構文が強調表示されます。
単にgit diffの出力をmoreにパイプすることができます:
git diff | more
「git diff」を使用しており、複数のページが表示されている場合(ページの最後に「:」が表示されます)、この場合は「-S」と入力してEnterキーを押します(Sは大文字である必要があります)。長い行の折り畳みを切り替えます。
完全な解決策ではありませんが、gitk
とgit-gui
は、この情報とスクロールバーの両方を表示できます。
これまで誰もこれを指摘しなかった。覚えておくのは非常に簡単で、git configで追加の設定を行う必要はありません
git diff --color | less -R
現在の/デフォルトの設定をリストします:
$ git config --global core.pager
less -FXRS -x2
次に-Sを更新して、次のように省略します。
$ git config --global core.pager 'less -FXR -x2'
-S:画面の幅より長い行を折り畳むのではなく、切り刻みます。