Использование режима отсоединенной ветви (т.е. извлечение из коммита) действительно не рекомендуется: http://sitaramc.github.com/concepts/detached-head.html
Прежде всего, я не знаю, как вы получаете коммит SHA. Обычно вы находите коммит, сканируя ветку (например, используя журнал). Таким образом, вопрос, который вы должны задать себе, заключается в том, как вы получаете идентификатор фиксации, и как вы найдете ответвление по этим данным.
Для вашей конкретной проблемы, я полагаю, есть способ найти имя ветви на основе объекта RevCommit. Тем не менее, вы должны знать, что это совсем не естественно.
Если вы перейдете по ссылке выше, вы поймете, как построен Git и почему ваша цель - получить коммит из других данных, а не наоборот.