スタッシュコマンドのためのgitにページャオフにするだけ
質問
I、一般的にはgitでページャの使用等が挙げられるが、git stash
のためにページャが私を悩まします。 git stash list
を呼び出すとき、私はポケベルでの出力の3行を示すことにしたくない - それは、プレスq
に私を強制的にfolowアップgit stash pop
コマンドを入力するときだけ使用できなく再び出力を行うために、
は一つの解決策を使用することです。
git --no-pager stash list
が、それは(私は怠け者)ずっとタイピングにあります。 git config
するの manページに続いて、私が試した
git config --global pager.stash false
これは(実際には、私は何の効果も気付かなかった)のドキュメントが言う何をしていないようです。そして、私が試した
git config --global alias.stash "--no-pager stash"
再び任意の顕著な効果なし。
は、設定が正常に更新され、例えば
git config pager.stash
false
これはただの効果はありません。私は何をしないのですか?そして、どのように私はgit stash
はページャを使用していないことを達成することができますか?
解決
これはスタッシュのように見え、そして(むしろCよりも、シェルスクリプトとして書かれた)任意の他の非組み込みコマンドは、ページャ設定ステップに出ミス。私はこれについて尋ねるgitのメーリングリストにメモを送りました。それは既知の問題ですが、この修正には全く簡単ではないように見える。
あなたのエイリアスから何の効果を見ていないしている主な理由は、Gitは黙っのエイリアスを無視している組み込みのコマンド;アイデアは、あなたが実際にコマンドアクセスできないを作りたくないということです。エイリアスが実行されてのチャンスを持っているために、あなたはそれをstash
以外の何かに名前を付ける必要はあります。
しかし、私は、単純な別名は、一般的なオプションが自分自身をgit
に渡さ含みのgitコマンドがで実行されている環境に影響することは許可されていないと信じています。私はあなたのような別名を使用する場合:
git config alias.foo --no-pager stash
git foo
fatal: alias 'foo' changes environment variables
あなたが正しくそれをしたい場合、あなたはそれがサブシェルおよび再呼び出しにgitを生むだろうだから、使用!git --no-pager stash
する必要があると思います。
別の一時的な修正は、それはシェルスクリプトなので、直接編集libexec/git-core/git-stash
を行くことであろう。ただ、list_stash
機能を探しに行く、と--no-pager
への呼び出しにgit log
オプションを追加、またはスクリプト全体をカバーするために、上部にセットGIT_PAGER=cat
ます。
他のヒント
として、git config --global pager.stash false
はこれを達成します。
以下の出力の1画面分未満があるかどう代わりにあなたが出口へless
を設定することができます:
export LESS='-F'
あるいは、冗長に:
export LESS='--quit-if-one-screen'
あなたはgitの出力の色を持っている場合、あなたはおそらくも-r
フラグを渡したいと思うでしょう。
export LESS='-F -r'
stll = "!git --no-pager stash list"
あなたの友達です。