OPの質問は9年以上経過しています。その時何がman git-status
言ったのかはわかりませんが、今ここでそれが言っていることです:
--porcelain[=<version>]
Give the output in an easy-to-parse format for scripts. This is similar to the
short output, but will remain stable across Git versions and regardless of user
configuration. See below for details.
The version parameter is used to specify the format version. This is optional and
defaults to the original version v1 format.
これは、この--porcelain
議論がリポジトリの変更状況をテストするのに適していることを示唆しています。
OPの質問、「前回のコミット以降に変更があったかどうか、またはローカルリポジトリに新しい変更があるかどうかを実際にテストするにはどうすればよいのか、何らかのブールチェックはありますか?」
私はそれ自体bash
はブールデータ型を持っているとは思わないが、これは十分に近いかもしれない:
[ -z "`git status --porcelain`" ] && echo "NULL-NO DIFFS" || echo "DIFFS EXIST"
これはif-then-else
、スクリプトのフォームとして再キャストすることも、git repoフォルダー内で CLIをそのまま実行することもできます。それ以外の場合は、目的の-C
リポジトリへのパス仕様を指定してオプションを使用します。
git -C ~/path/to/MyGitRepo status --porcelain
補遺:
-u, --untracked-file
無視したいファイルのステータスを報告しないようにオプションを使用することを勧める人もいます。これには不幸な副作用が伴うことに注意してください。新しく追加されたファイルにもステータスが付けられません。このオプションは状況によっては便利ですが、使用する前に慎重に検討してください。
git status
ますか?