DEV Community

Srebalaji Thirumalai
Srebalaji Thirumalai

Posted on • Originally published at gitbetter.substack.com on

How to use git restore effectively

This post was originally posted in the newsletter GitBetter. If you are interested in leveling up your game in Git, you can subscribe to it.

git restore is used to restore or discard the uncommitted local changes of files.

Assume that you have done some changes in some files and then if you want to discard those local changes you can safely use git restore.

Another use case is if you want to unstage a file you can use this command. In other words, it is used to undo the effects of git add.

Usage

git restore <file_name>

Example:
git restore example.txt
Enter fullscreen mode Exit fullscreen mode

In the above image, you can see that we have used git restore to discard the local changes of a file.

Other options

git restore one.txt two.txt // Mention multiple files

git restore . // Discard all local changes

git restore *.rb // Wildcard option
Enter fullscreen mode Exit fullscreen mode

Unstage files

As said earlier, you can also use this command to unstage a file from the staging area.

git restore --staged <file_name>
Enter fullscreen mode Exit fullscreen mode

You can see that the mentioned file is unstaged but the local changes of the files are still present.

Source option

git restore --source <source_id/commit_id>
Enter fullscreen mode Exit fullscreen mode

The source option is used to restore a file from a particular commit. By default, restore will take the contents from HEAD

git restore --source f9456ba one.txt
Enter fullscreen mode Exit fullscreen mode

In the above command, we are restoring a file from a mentioned commit.

Patch option

git restore one.txt -p
Enter fullscreen mode Exit fullscreen mode

As you can see, you can select the chunks interactively.

git restore is one of the useful commands you can start using it in your workflow. It is marked as experimental in git docs but it’s not a very destructive command that you have to worry about.

Thank you for reading :)

This post was originally posted in the newsletter GitBetter. If you are interested in leveling up your game in Git, you can subscribe to it.

Top comments (0)