Разница между командами git checkout и git reset при работе с указателем HEAD заключается в следующем:
Например, если есть ветки master и develop, которые указывают на разные коммиты, и мы сейчас находимся на ветке develop (то есть HEAD указывает на неё), то при выполнении git reset master ветка develop станет ссылаться на тот же коммит, что и master. 2 Если выполнить git checkout master, то develop не изменится, но изменится HEAD: он станет указывать на master. 2