В то время как reset и checkout имеют разные способы использования большую часть времени, я не вижу, какая разница между этими двумя.
Вероятно, один или никто бы не захотел добавить параметр --hard, чтобы сделать то, что может сделать базовый checkout.
Может быть, есть разница в том, как вы увидите историю?

