This is otherwise known as the “Rrrrgh!” chapter. Bad things happen to good people. Fortunately, Git can help you undo some of those past mistakes by traveling back in time. There are several commands in Git that vary in their degree of severity—making minor adjustments of a commit message all the way through to obliterating history. Mistakes are typically committed and removed from a personal repository, but the way you deal with them can impact how others interact with the code base. Ensuring you are always dealing with problems in the most polite way possible will help your team work more efficiently.
By the end of this chapter, you will be able to:
Amend a commit to add new work
Restore a file to a previous state
Restore your working directory to a previously committed state
Revert previously made changes
Reshape your commit history using rebase
Remove a file from your repository
Remove commits added to a branch from an incorrect merge
Throughout the chapter you will be learning techniques that feel invisible, but have huge implications. Take the time to slow down, and draw a diagram of how you want things to appear after you have run the sequence of commands. This will help you to select the right subcommand and the right parameters. It will also help you to recall information the next time you need to perform the same task again.
Those who learn best by following along with video tutorials will benefit from ...