2017-05-08 10 views
1

私はこれをどのようにして良いかわかりません。git logコマンド出力を 'inline'にします。

git logコマンドを実行すると、それ自身の 'ウィンドウ'に出力が生成されます。プロンプトに戻るためにqを押す必要があります。その後、すべてのログ表示が消えます。

ログ出力が表示されるようにログ出力 'インライン'を作成する方法はありますか? git logの出力がgit終了した後、端末の履歴に滞在していません

+1

出力がページャーを使用するため、qを押す必要があります。 gitとそのサブコマンドの間に '--no-pager'を追加することができます。 'git --no-pager log'などです。 – ElpieKay

+1

また、(* nixと仮定して) 'git log'をデフォルトで' stdout'に出力したい場合は 'core'ページ変数を' less'の代わりに 'cat'を使うように設定することができます。デフォルトで使用されます)。つまりあなたのグローバルなgitconfigで設定変数を設定するには、 'git config --global core.pager cat'を実行します。 – Alderath

+1

また、ページャーが 'less'の場合は、' -FX'( '--quit-if-one-screen -no-init')オプションを含むようにLESS環境変数を設定することができます。最初のオプションは 'g' log -1'のように'q'キーを押すことを忘れてしまいます.2番目のオプションは' less'終了後にstdoutに "スティック"させます(これはおそらく "列をなして")。 – eush77

答えて

3

理由は、その出力を表示するために使用gitページャプログラムはそのままメインバッファを維持するために別の表示バッファに切り替えることescape sequencesを発することです。これは通常、便利な機能です。

一部のページャでは、このバッファ切り替えを無効にすることができます。ページャがless(デフォルトUnixライクなシステム上の1)である場合たとえば、あなたはあなたのシェル設定ファイルにLESS環境変数を設定することができます。

export LESS="--no-init" 

これは、その後できる(デフォルトでオン-X, --no-initオプションをオンにしますコマンドラインでスイッチ-+Xによってオフにする必要があります)。その結果、git logの出力がメインバッファに書き込まれ、結果として端末履歴に残ります。

ページャがバッファの切り替えをサポートしているが、それをオフにする方法がない場合、唯一の解決策は、git logの出力にそのようなページャを使用しないことです。

スイッチ何か他のものへのページャ:

$ git config --global core.pager less 

または無効ページングgit log用:

$ git config --global pager.log false 

又は完全 - 他のすべてのgitコマンド:

$ git config --global core.pager cat 

私がgit logコマンドを実行すると、それ自身の 'ウィンドウ'に出力が生成されます。私はあなたの質問のこの部分については、私はあなたが実際にはないgit log出力のメガバイトは、すべての端末にこぼしたことがしたいことを言うと思いプロンプト

に戻ってきてQをヒットする必要がありますあなたが走る時間はgit logです。ポケベル機能は、スクロール、検索、ジャンプ、ファイルの変更、コマンドの実行など、一般的に非常に便利です。

おそらく、短い出力のためにページャーをバイパスすることをお勧めします。 gitはこの機能を提供しませんが、いくつかのページャーは機能します。全体の出力は、単一の画面に表示することができる場合、これは自動的にless終了を行います

export LESS="--no-init --quit-if-one-screen" 

:あなたはlessを使用している場合たとえば、あなたはあなたのシェルの設定で環境変数LESS-F, --quit-if-one-screenオプションを追加することができます。

関連する問題