質問

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ます。

他のヒント

1.7.7.3の

として、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"
あなたの友達です。

scroll top