Проверьте, существует ли git удаленный доступ до первого нажатия
Я пишу bash script, и мне нужен тест, чтобы узнать, существует ли данный удаленный доступ.
Предположим, для конкретности, что я хочу проверить, существует ли удаленный faraway
. Если я что-то нажал на faraway
, я могу сделать if [ -d .git/refs/remotes/faraway ]; then ...
. Но, насколько я вижу, псевдоним faraway
можно определить, даже если .git/refs/remotes/faraway
не существует.
Еще одна опция - проанализировать вывод git remote
и посмотреть, появляется ли там faraway
. Но мне интересно, есть ли более простой способ проверить, существует ли faraway
, независимо от того, существует ли .git/refs/remotes/faraway/
.
Ответы
Ответ 1
Одна мысль: вы можете проверить статус выхода на git ls-remote faraway
. Это фактически приведет к общению с удаленным компьютером, а не к локальному присутствию или отсутствию.
git ls-remote --exit-code faraway
if test $? = 0; then
....
fi
Ответ 2
Другой способ проверить, существует ли faraway
в .git/config
:
if git config remote.faraway.url > /dev/null; then
…
fi
Ответ 3
Если пульт дистанционного управления определен в .git/config
, вы можете избежать пингования удаленного сервера с помощью git remote
.
if git remote | grep faraway > /dev/null; then
...
fi