12. Discarding local changes (before staging)
Goals
- Learn how to discard the working directory changes.
01 Checking out the main
branch
Make sure you are on the latest commit in the main
branch before you continue.
Run
git switch main
02 Change hello.html
Sometimes you have modified a file in your local working directory, and you wish to just revert to what has already been committed. The restore
command will handle that.
Make changes to the hello.html
file in the form of an unwanted comment.
File: hello.html
<html>
<head>
</head>
<body>
<h1>Hello, World!</h1>
<!-- This is a bad comment. We want to revert it. -->
</body>
</html>
03 Check the status
First of all, check the working directory’s status.
Run
git status
Result
$ git status
On branch main
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: hello.html
no changes added to commit (use "git add" and/or "git commit -a")
We see that the hello.html
file has been modified, but not staged yet.
04 Undoing the changes in the working directory
Use the restore
command in order to reset the content of the file hello.html
.
Run
git restore hello.html
git status
cat hello.html
Result
$ git restore hello.html
$ git status
On branch main
nothing to commit, working tree clean
$ cat hello.html
<html>
<head>
</head>
<body>
<h1>Hello, World!</h1>
</body>
</html>
The status
command shows there were no unstaged changes in the working directory. And the "bad comment" is no longer contained in the file.