In general, git reset's function is to take the current branch and reset it to point somewhere else, and possibly bring the index and work tree along. More concretely, if your master branch (currently checked out) is like this: - A - B - C (HEAD, master) and you realize you want master to point to B, not C, you will use git reset B to move it there: - A - B (HEAD, master) # - C is still here, but