Хотя ответ VonC правильный, вот что я в итоге использовал:
git ls-remote вернет информацию о хранилище, по умолчанию это HEAD, все ветви и теги, а также идентификатор фиксации для каждой записи.
e.g.:
$ git ls-remote git://github.com/user/repo.git
<commit id> HEAD
<commit id> refs/heads/example_branch
<commit id> refs/heads/master
<commit id> refs/tags/v1.0.2
<commit id> refs/tags/v1.0.0
git ls-remote
возвращает код 0 при успехе, код ошибки 128 при ошибке.
Если хранилище недоступно, например, если у вас нет разрешения на просмотр хранилища или если хранилище в этом месте отсутствует, git ls-remote
вернет:
fatal: The remote end hung up unexpectedly
Чтобы использовать это в скрипте bash, будет работать следующее ...
git ls-remote "$SITE_REPO_URL" &>-
if [ "$?" -ne 0 ]; then
echo "[ERROR] Unable to read from '$SITE_REPO_URL'"
exit 1;
fi
( Примечание: &>-
отключает stderr и stdout, поэтому команда ничего не выводит)