Наверное, это неправильно, что меня так смешит запись Reset Demystified. Если вкратце, то автор книги Pro Git (!), признается в том, что мало написал о команде git reset в своей книге, потому что плохо ее понимал (!!). Но с тех пор он прочитал о ней побольше, и сейчас объяснит ее раз и навсегда, в блог-записи на 17 страниц!
Можно ли придумать более убедительную демонстрацию извращенности и враждебности командной строки гита? У команды git reset, которая потенциально может полностью стереть ваши изменения навсегда, есть три разных подвида, каждый из которых делает совершенно разную работу, и еще один из этих подвидов очень похож на другую команду, git checkout, но только в одном из ее подвидов - другой опять-таки делает совершенно другое! Но ничего, все станет кристально ясно, как только мы изучим полезнейшую сводную таблицу в конце записи:
http://ompldr.org/vY2xkMw/demistified.png
Правда, теперь все понятно?