なぜgitによって不必要に実行されるのが少ないのですか?


22

git branch(bashまたはcshから)実行すると、自動的に出力がパイプされますless。ただし、リポジトリ内のブランチが数個しかないため、これは不必要です。

~/.gitconfigファイルとローカル.git/configファイルをチェックしても、ポケットベルなど、これを引き起こすものについては何も見つかりません。そうでなければ、ウェブ検索で私が見つけたものは何も役に立たないし、有望でもありません。

なぜこれが起こっているのですか?less必要なときに実行するために(もしあれば)何ができますか(たとえばgit log、多くの履歴があるときに実行する場合)、そうでない場合は実行できませんgit branchか?


4
一般的に、gitはどのコマンドからの出力がどれだけあるかを知らないので、デフォルトですべてをポケットベルで送信します。
イカル

6
新しい-nixインストールで最初に行う事は置いてあるexport LESS=-X.profile。これにより、画面の「クリーンアップ」が少なくなります。私は嫌い、私は頻繁にカットする必要があり、ものを貼り付けたり、参照としてそれを使用しているため、標準設定では、画面をクリアしていること、それを。
ピーター-モニカを

3
@Peter明確にする(しゃれを意図しない)ためには、画面の消去動作を望まない人だけがそうすべきです。
デイビッドZ

@icarus:それは論理的なようです。しかし、私の行動は最近変わりました。なぜかはわからない-おそらく、他の人の仕事をどれだけ難しくするかを気にしていない「高い」企業セキュリティの人々から強制された環境変数の変更。とにかく、gitは私が賢明な振る舞いだと考えていたものから突然停止し、停止したときに出力が失われるような方法で単一行の出力を実行しました。
GreenMatt

動作が最近変更された場合は、少なくとも/etc/profile、/etc/profile.d/*、/etc/bash.bashrcなどのシステム全体のシェル起動ファイルにLESS変数の設定が追加された可能性があります。環境にこの変数がありますか?
イカルス

回答:


35

以下を設定できます。

git config --global core.pager 'less -FRX'

これは、保証されますless意志を

  • ファイル全体を最初の画面に表示できる場合は終了します(F
  • 端末フォーマット用の生の制御文字を出力します(R
  • 長いラインをチョップします(S
  • init / de-init文字列を端末に送信しない-終了時に画面をクリアしないようにします(X

編集:SPeter A. Scheiderのコメントに基づいてオプションを削除


7
--global現在のリポジトリにのみ適用する場合は省略します。
mosvy

8
環境変数LESSをに設定し、-FRXとSをテイストに追加することも別の方法です。
イカル


11
ほとんどの場合、OPはその動作が一般的に迷惑であると判断します。環境変数export PAGER='less -FRSX'を設定して、gitがそれを尊重する(特定のgit configがない場合)と思います。ところで、-S出力を静かに破棄するので危険です。
ピーター-モニカの復活

4

ここにチューニングlessの動作に関するいくつかの素晴らしい答えがありますが、私の灰色のひげの指は|moreそれを望むときに入力することに慣れているので、私はまだgitよりもmercurialと調和しているので、私は熱心です

git config --global core.pager cat

3
のmanページにgit-configは、の値がcore.pagerシェルによって解釈されることを意図していることが記載されています。に設定するとno、コマンドが実行されるno可能性が高くなりますが、コマンドは存在しない可能性が高いため、単純に内容を出力するようにフォールバックします。それでも先頭にエラーメッセージが表示されます。おそらくあなたがしたいことは、cat代わりにそれを設定することです。
QIS

1
それは良い情報ですが、私が気に入っているのは何も実行しないことです。cat無用である、と私は特にない(参照:ない何猫の変化にメンテナUTILのLinuxを信用していない引用されたファイルの大失敗を)。代わりに「絶対にしない」を使用する必要があります。そのようなプログラムが存在する可能性は低くなります。ls
dgc

7
core.pager空の文字列(git config core.pager '')またはに設定すると、何も実行catされません。私を信じないなら、自分で解決できます;-)のようなダミーコマンドに設定する理由は何もありませんno
mosvy

まことにありがとうございます!空の文字列によってコマンドが実行されないことを知りませんでした。に関してcat、gitはページャーコードでその文字列の特殊なケースを持っていると言っていcatますか?つまり、それは事実上「null」の同義語です?私はそれが実行されると期待していcatます。
dgc

これは確かに事実のようです。エガッド。しかしまた良い:私はgitに対する嫌悪感を正当化するより多くの方法を常に探しています。
dgc
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.