質問
ファイルで git-diff を実行していますが、変更は長い行の終わりです。
カーソルキーを使用して右に移動すると、色分けが失われ、行が整列しないため、変更の追跡が難しくなります。
その問題を防ぐ方法はありますか、それとも単に行を折り返すだけですか?
(mingw32経由でgit 1.5.5を実行)
解決
git diff
の出力の表示は、使用しているページャーによって処理されます。
通常、Linuxでは、 less
が使用されます。
GIT_PAGER
環境変数を設定することで、gitに別のページャーを使用するように指示できます。ページングを気にしない場合(たとえば、端末でスクロールバックできます)、ページャーを使用して停止するには、 GIT_PAGER
を明示的に空に設定してみてください。 Linuxの場合:
$ GIT_PAGER='' git diff
ポケットベルがない場合、行は折り返されます。
端末がカラー出力をサポートしていない場合、-no-color
引数を使用するか、git configファイルのcolorセクションにエントリを置くことで、これをオフにすることもできます。
$ GIT_PAGER='' git diff --no-color
他のヒント
またはデフォルトのページャーとしてlessを使用する場合は、diffを表示しながら -S
を入力して、lessでの折り返しを再度有効にします。
git config
を使用して、ポケットベルをラップするように設定することもできます。
$ git config core.pager 'less -r'
現在のプロジェクトのページャー設定を設定します。
$ git config --global core.pager 'less -r'
すべてのプロジェクトのページャーをグローバルに設定します
長い行の違いを確認する1つの方法は、ワード指向のdiffを使用することです。これは次の方法で実行できます。
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以降 ( 2007年9月)
-no-pager
オプションが利用可能になりました。
git --no-pager diff
git diffがページャーを使用しないようにするにはどうすればよいですか
v2.1以降、デフォルトはラップです
8年後、 https://superuser.com/questions/777617/line-wrapping-less-in-os-x-specifically-for-use-with-git-diff :
git config core.pager `fold -w 80 | less`
まずgit diffをfoldにパイプし、次にlessにパイプします:ラップされ、ページの高さが少なくなり、構文が強調表示されます。
git diffの出力を単純にmoreにパイプすることができます:
git diff | more
完璧なソリューションではありませんが、 gitk
と git-gui
は両方ともこの情報を表示できますが、
スクロールバーがあります。
" git diff"を使用している場合いくつかのページが表示されています(ページの最後に":"が表示されます)。この場合、「-S」と入力できます。 Enterキーを押します(Sは大文字である必要があります)。長い行の折り畳みを切り替えます。
これまで誰も指摘していませんでした。覚えやすく、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:画面の幅より長い行を折り畳むのではなく、切り刻みます。
問題が発生した場合、私はよくDiffMergeに頼ります。インラインdiffハイライト機能を備えた優れたdiffツール。また、最新バージョンでは、水平モードを持つモードが追加されました。
ただし、gitを使用するように構成することはできません。そのため、最初に両方のバージョンのファイルを取得するには、いじくり回す必要があります。
それを行う簡単な方法、私の場合はLinux OSを使用しています
git diff > text.txt
このコマンドラインは、git diff出力を作成してtext.txt内に配置します 次に、たとえば崇高なテキストなど、別のテキストエディターで開くことができます。
sublime text.txt
お役に立てば幸いです。
後で削除することを忘れないでください。 = 0)