gitリポジトリに変更があるかどうかチェックしたいと思います。リポジトリに変更があるかどうかを確認する最速の方法は?
私は
if command git status --porcelain 2> /dev/null | grep -q .; then
X
else
Y
fi
この条件を使用してきたが、それはあまりにも遅いです。
もっと速い方法がありますか?これを行うには、git
コマンドを使用する必要がありますか、そのコマンドを完全にバイパスする超高速メソッドがありますか?
:ここでは短いバージョンは、(見ていないが、変更を上演)であります>/dev/null |読み取り-n1;エコー "Repo has changes"; fi'。私たちがサブシェルと外部コマンドを取り除くので、現在のテストよりも速くなるでしょう。 –
@gniourf_gniourfなぜあなたは 'tail'から' read'に切り替えましたか? – theonlygusti
'tail'は外部コマンドで、' read'は組み込みコマンドです。さらに、 'read -n1'では、最大で1文字だけを読み込みます(ストリーム全体ではありません)。 'grep -q。 'でも同じことができますが、' grep'は外部コマンドなので 'read'よりも遅くなります。 –