El resultado de la revisión de mi 'Edición sugerida' a la 'Actualización' en la pregunta inicial fue 'Debería haber sido escrito como un comentario o una respuesta', así que lo estoy publicando aquí:
La otra forma propuesta no solo verificará las ramas, sino cualquier referencia con dicho nombre @jhuynh .
git rev-parse --verify <reference-name>
# $? == 0 means reference with <reference-name> exists.
Problema con una 'Actualización' en la detención inicial explicada:
Supongamos y verifiquemos que 'master.000' es solo una etiqueta, tal rama local no existe, grep devuelve una entrada que es una etiqueta. Aún así, rev-parse devolverá 0 si existe una referencia, incluso si dicha rama local no existe. Esta es una coincidencia falsa, exactamente como lo menciona @ paul-s
$ git show-ref |grep master.000
f0686b8c16401be87e72f9466083d29295b86f4a refs/tags/master.000
$ git rev-parse --verify master.000
f0686b8c16401be87e72f9466083d29295b86f4a
$ echo $?
0
git branch | grep -w <branch-name>
. Ok, es un comando de porcelana, pero no puedo imaginar que este uso particular que haber un cambio significativo en el futuro como para hacer este fragmento inservible ...git rev-parse --verify <branch_name>
también verifica otras referencias, como etiquetas y hashes de confirmación, por lo que, aunque podría ser más adecuado para lo que necesita, devolverá falsos positivos si solo le interesan precisamente las ramas.