Результатом проверки моего «Предложенного изменения» на «Обновление» по первому вопросу было «Это должно было быть написано как комментарий или ответ», поэтому я публикую его здесь:
Другой предложенный способ будет проверять не только ветки, но и любые ссылки с таким именем @ jhuynh .
git rev-parse --verify <reference-name>
# $? == 0 means reference with <reference-name> exists.
Проблема с «Обновлением» при первоначальном объяснении вопроса:
Предположим и проверили, что «master.000» является только тегом, такая локальная ветвь не существует, grep возвращаетодна запись, которая является тегом.Тем не менее, rev-parse вернет 0, если ссылка существует, даже если такая локальная ветвь не существует.Это ложное совпадение, в точности как упомянуто @ paul-s
$ git show-ref |grep master.000
f0686b8c16401be87e72f9466083d29295b86f4a refs/tags/master.000
$ git rev-parse --verify master.000
f0686b8c16401be87e72f9466083d29295b86f4a
$ echo $?
0