Pertanyaan OP sudah lebih dari 9 tahun sekarang. Saya tidak tahu apa yang man git-statusdikatakan saat itu, tetapi inilah yang dikatakan sekarang:
--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.
Ini menunjukkan bahwa --porcelainargumen tersebut cocok untuk menguji status repo untuk perubahan.
Ketahui pertanyaan OP, "Apakah ada semacam pemeriksaan boolean jika ada perubahan sejak komit terakhir, atau bagaimana saya bisa benar-benar menguji apakah ada perubahan baru pada repositori lokal saya?"
Saya tidak berpikir itu bashmemiliki tipe data boolean per se , tetapi ini mungkin cukup dekat:
[ -z "`git status --porcelain`" ] && echo "NULL-NO DIFFS" || echo "DIFFS EXIST"
Ini dapat dicetak ulang sebagai if-then-elseformulir untuk skrip, atau dieksekusi apa adanya CLI saat berada di folder git repo . Jika tidak, gunakan -Copsi dengan spec path ke repo yang menarik:
git -C ~/path/to/MyGitRepo status --porcelain
Tambahan:
- Beberapa menyarankan menggunakan
-u, --untracked-fileopsi untuk menghindari melaporkan status pada file yang ingin diabaikan. Catatan ini disertai dengan efek samping yang tidak menguntungkan : file yang baru ditambahkan juga tidak berstatus. Opsi ini berguna dalam beberapa situasi , tetapi pertimbangkan baik-baik sebelum menggunakannya.
git status?