--soft هم index و هم فایلها را نگه میدارد، --mixed (پیشفرض) index را ریست میکند ولی فایلها را نگه میدارد و --hard هر دو را ریست میکند، پس تغییرات commitنشده از بین میروند. برای پیدا کردن جای قبلی از reflog استفاده کنید.
git reset
branch فعلی را به commit دیگری میبرد؛ mode تعیین میکند index و working tree چه شوند.