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.