Moving the branch
Reset's three modes are three different commands sharing a name.
`git reset` moves the branch you are on. What else it touches depends on the mode, and the three modes map exactly onto the three trees.
`--soft` moves the branch and nothing else, so everything the commits contained is still staged. `--mixed`, the default, also rewrites the index, turning that work into unstaged changes. `--hard` additionally overwrites your files, and is the only one that destroys anything.
In every case the commits you moved away from still exist and the reflog still names them. `--hard` is dangerous because of your uncommitted work, not because of the commits.
Commands in this lesson
git reset- Move the current branch, and depending on the mode the index and files too