Fixing mistakes with the reset command
At any stage during development, you might want to undo something, to fix mistakes, or to abandon the current work. There is no git undo
command in core Git, and neither is there support for the --undo
option in Git commands, though many commands have an --abort
option to abandon current work in progress. One of the reasons why there is no such command or option yet is the ambiguity on what needs to be undone (especially for multi-step operations).
Many mistakes can be fixed with the help of the git reset
command. It can be used for various purposes and in various ways; understanding how this command works will help you in using it in many situation, not limited to provided example usage.
Note that this section covers only the full-tree mode of git reset
; resetting the state of a file, that is the description of what git reset -- <file>
does, is left for the Managing worktree and staging area section at the end of this chapter.