Reverting Unstaged Changes with Git

Posted by on 5.25.23 in Git

A screenshot of Git branches
Photo by Yancy Min on Unsplash

Sometimes when I check out a branch, for example to review a Pull Request (PR) and then make a change to some of the files, I find that when I want to check out a different branch I get a Git error like the one below:

error: Your local changes to the following files would be overwritten by checkout:
	file-that-you-changed.html
Please commit your changes or stash them before you switch branches.
Aborting

In the past I have used git stash to save the changes before trying to checkout a different branch and this also works, however, that would be more appropriate if I was actually intending to bring those changes back at some point.

I did a Google search for “git remove changes” and I found the following stack overflow question. Funnily enough, the accepted answer uses the same method I was using with git stash, however, the answer with the most votes uses git restore. It’s very similar to the git add command, although it has the opposite effect. In fact if you run git status the usage of both is explained.

In summary if you want to discard unstaged changes you can run:

git restore .

to restore all files. Or:

git restore ./a-specific-file.html

to restore a specific file.