Самая простая команда, вероятно, выглядит так:
$ git symbolic-ref -q HEAD
и проверьте статус выхода: 0 означает нормальный; 1 отсоединено.
Из документов git-symbolic-ref
:
-q, --quiet
Do not issue an error message if the <name> is not a symbolic ref
but a detached HEAD; instead exit with non-zero status silently.