Чому б не використовувати вихідні коди? Якщо сховище git існує в поточному каталозі, тоді git branch
і git tag
команди повертають вихідний код 0; інакше повернеться ненульовий код виходу. Таким чином, ви можете визначити, чи існує сховище git чи ні. Просто ви можете запустити:
git tag > /dev/null 2>&1 && [ $? -eq 0 ]
Перевага : Flexibe. Він працює як для голих, так і для не голих сховищ, а також для sh, zsh та bash.
Пояснення
git tag
: Отримання тегів репозиторію, щоб визначити, існує чи ні.
> /dev/null 2>&1
: Заборона друкувати що-небудь, включаючи нормальні та помилки.
[ $? -eq 0 ]
: Перевірте, чи повернулась попередня команда з кодом виходу 0 чи ні. Як ви можете знати, кожен ненульовий вихід означає, що трапилося щось погане. $?
отримує код виходу попередньої команди, і [
, -eq
і ]
виконує порівняння.
Наприклад, ви можете створити файл, названий check-git-repo
із таким вмістом, зробити його виконуваним і запустити його:
#!/bin/sh
if git tag > /dev/null 2>&1 && [ $? -eq 0 ]; then
echo "Repository exists!";
else
echo "No repository here.";
fi