質問

ファイルで 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' 

すべてのプロジェクトのページャーをグローバルに設定します

Josh Diehl に全額クレジット/ 136178 / git-diff-handling-long-lines / 3107807#comment18876094_3107807 ">コメントへのこの回答 >、それにもかかわらず、これはそれ自体の答えになるはずだと思うので、追加してください:

長い行の違いを確認する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

または、これの代わりに色付けして:

<code> git diff </code>の結果>

これが表示される場合があります:

<code> git diff --word-diff </code>の結果>

今、非常に長い行を比較している場合、あなたが最初に説明したページャーの状況に問題がある可能性があります。ただし、行の変更点をより簡単に特定するための新しいツールが提供されることを願っています。

ページャーとして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以降、デフォルトはラップです

Git 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 は両方ともこの情報を表示できますが、 スクロールバーがあります。

&quot; git diff&quot;を使用している場合いくつかのページが表示されています(ページの最後に&quot;:&quot;が表示されます)。この場合、「-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)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top