Вы же все замечательно нарисовали: ответвляетесь от нужного коммита (HEAD) и делаете коммит =)
Я так понимаю, проблема в переносе указателя ветки на другой коммит.
Тогда вот наиболее простой вариант: Делаете чекаут ветки с перезаписью указателя, если она существует (опция -B) и коммитите в нее.
git checkout -B mybranch
git commit ...
Можно еще так (не знаю только зачем, если есть первый вариант):
git branch -D mybranch
git checkout -b mybranch
git commit ...
Еще можно использовать reset --hard для ветки, но это, в данном случае, извращение.