OP'nin sorusu şu anda 9 yıldan daha eski. man git-statusO zaman ne dedi bilmiyorum , ama şimdi şöyle diyor:
--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.
Bu, --porcelainargümanın bir repo durumunu değişiklikler için test etmeye uygun olduğunu göstermektedir.
OP sorusuna göre, "Son işlemden bu yana değişiklik olup olmadığını bir tür boolean kontrolü var mı, yoksa yerel depomda yeni değişiklikler olup olmadığını nasıl test edebilirim?"
Ben kendi başınabash boole veri türleri olduğunu sanmıyorum , ama bu yeterince yakın olabilir:
[ -z "`git status --porcelain`" ] && echo "NULL-NO DIFFS" || echo "DIFFS EXIST"
Bu, if-then-elsebir komut dosyası formu olarak yeniden kullanılabilir veya git repo klasöründeyken CLI'da olduğu gibi yürütülebilir . Aksi takdirde, -Cseçeneği ilgili repoya özgü bir yolla kullanın:
git -C ~/path/to/MyGitRepo status --porcelain
Zeyilname:
- Bazıları
-u, --untracked-fileyoksaymak istediği dosyalarda durum bildirmekten kaçınma seçeneğini kullanmanızı önerir . Bunun bir talihsiz ile geldiğini unutmayın yan etkisi olduğunu unutmayın : yeni eklenen dosyalar da bildirilmez. Seçenek bazı durumlarda yararlıdır , ancak kullanmadan önce dikkatlice düşünün.
git status?