より大きな違いを見るには、を使用してgit diff
ページを付けますless
。これは別のウィンドウを開いてデータを確認することでps -aux
確認できます/proc
。
しかしless
、Gitで呼び出すと、ヒット後に端末の内容を以前の状態に復元しませんq
(差分内容は端末に残ります)。しかし、私がするとき
git diff commit1 commit2 --color | less -R
less
キーを押して終了するとq
内容が消え、端末は前の状態に戻ります。
私がそうするなら、はるかに興味深いのは
export PAGER=less LESS='-R'
呼び出しgit diff
(またはページャを呼び出す他のコマンド)は、less
Bashシェルから直接呼び出すのと同じように動作します。
以下は私の問題を説明する短いスクリーンショットです。左ペインでは、コマンドは次のように実行されます。
unset PAGER GIT_PAGER LESS
git diff HEAD^ HEAD
右側のウィンドウでコマンドを表示できます。最新のコミットでは、y
ファイルに100行以上が記録されました。終了するには、両方のウィンドウでless
キーを使用してくださいq
。
違いが何であるかを教えて、その理由を説明できる人はいますか?
答え1
文書:
LESS
環境変数が設定されていない場合、Gitはそれを設定します(FRX
環境LESS
変数が設定されている場合、Gitはそれをまったく変更しません)。
-X
()オプションは、--no-init
終了後に端末を消去しないように機能しますless
。