Mengapa tidak menggunakan kode keluar? Jika repositori git ada di direktori saat ini, maka git branchdan git tagperintah 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 [, -eqdan ]melakukan perbandingan.
Sebagai contoh, Anda dapat membuat file bernama check-git-repodengan 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