До сих пор я всегда использовал git checkout <branch_name>; git reset --hard <hash>
для перемещения ветки назад к более раннему фиксации.
Затем я наткнулся на этот вопрос, но ответы и комментарии не объясняют в деталях различия между ними.
Предполагая, что у меня есть чистое рабочее дерево, какие внутренние различия существуют между
git branch -f <branch_name> <hash>
и
git checkout <branch_name>
git reset --hard <hash>
и выполняются ли такие различия, если таковые имеются, какие-либо незначительные последствия для расширенного использования?