Mengapa tidak menggunakan kode keluar? Jika repositori git ada di direktori saat ini, maka git branch
dan git tag
perintah mengembalikan kode keluar dari 0; jika tidak, kode keluar yang tidak nol akan dikembalikan. Dengan cara ini, Anda dapat menentukan apakah repositori git ada atau tidak. Cukup, Anda dapat menjalankan:
git tag > /dev/null 2>&1 && [ $? -eq 0 ]
Keuntungan : Flexibe. Ia bekerja untuk repositori telanjang dan non-telanjang, dan di sh, zsh dan bash.
Penjelasan
git tag
: Mendapatkan tag dari repositori untuk menentukan apakah ada atau tidak.
> /dev/null 2>&1
: Mencegah dari mencetak apa pun, termasuk output normal dan kesalahan.
[ $? -eq 0 ]
: Periksa apakah perintah sebelumnya dikembalikan dengan kode keluar 0 atau tidak. Seperti yang Anda ketahui, setiap jalan keluar yang tidak nol berarti sesuatu yang buruk terjadi. $?
mendapatkan kode keluar dari perintah sebelumnya, dan [
, -eq
dan ]
melakukan perbandingan.
Sebagai contoh, Anda dapat membuat file bernama check-git-repo
dengan konten berikut, membuatnya dapat dieksekusi dan menjalankannya:
#!/bin/sh
if git tag > /dev/null 2>&1 && [ $? -eq 0 ]; then
echo "Repository exists!";
else
echo "No repository here.";
fi