7

「ライブ git ログ」bash スクリプトを作成しようとしています。これまでのコードは次のとおりです。

#!/bin/sh
while true;
do
    clear
    git log --graph -10 --all --color --date=short --pretty=format:"%Cred%x09%h %Creset%ad%Cblue%d %Creset %s %C(bold)(%an)%Creset"
    sleep 3
done

私の問題は、git log がページャーを使用しており、q終了するには を押す必要があることです。bashでquitコマンドをコーディングする方法はありますか? q をエコーし​​てみましたが、うまくいきませんでした。(ここで、echo "q" > /dev/console を提案する別の投稿を見ましたが、私の環境には開発コンソールがありません)

システム: win7 ボックス - mingw で bash をエミュレート (1.7.6.msysget.0)

アップデート

これが完成したスクリプトです

#!/bin/sh
while true;
do
    clear
    git log \
    --graph \
    --all \
    --color \
    --date=short \
    -40 \
    --pretty=format:"%C(yellow)%h%x20%C(white)%cd%C(green)%d%C(reset)%x20%s%x20%C(bold)(%an)%Creset" |
    cat -
    sleep 15
done

-40 は個人的な好みです。あなたとあなたの端末の画面サイズに合った数字に変更してください。

4

3 に答える 3

23

--no-pager を追加する方法です。

git --no-pager log

したがって、完全なコマンドは次のようになります

git --no-pager log --graph -10 --all --color --date=short --pretty=format:"%Cred%x09%h %Creset%ad%Cblue%d %Creset %s %C(bold)(%an)%Creset"
于 2012-10-01T16:16:30.627 に答える
5

Try the following code :

git log \
    --graph -10 \
    --all \
    --color \
    --date=short \
    --pretty=format:"%Cred%x09%h %Creset%ad%Cblue%d %Creset %s %C(bold)(%an)%Creset" |
    cat -

edit

| cat - is not specific to git, that works in each use cases when you have a pager and you'd want to print to STDOUT

于 2012-10-01T16:15:35.333 に答える
2

設定、スクリプトで:

export PAGER=

トリックをするだろう

于 2012-10-01T16:12:51.653 に答える