Undoing changes in Git
Tags: video, git, podcast
Published: 2018-11-28 20:50:32

---
title: Undoing changes in Git
canonical_url: https://zellwk.com/blog/git-undo
video: za-DSrhiXJY
podcast: 94e05374
tags: video, git, podcast
description: You already know Git is like a save point system. What you've done so far is to learn to save. But how do you undo, and go back to a previous state? That's what we're going to cover 
published: true
---

 {% youtube za-DSrhiXJY %}

# Undoing with Git

At this point, you already know Git is like a save point system. What you've done so far is to learn to save. But how do you undo, and go back to a previous state? 

That's what we're going to cover 



## Local vs Remote

It's more complicated to undo something that's already on the remote. This is why you want to keep things on your local until they're kind of confirmed. 

## Four common scenarios

1. Discarding local changes
2. Amending the previous commit
3. Rolling back to a previous commit
4. Reverting a commit that has been pushed to the remote

## Scenario 1: Discarding local changes

The first scenario is when you've created some changes. They're not committed yet. And you want to delete these changes. 

Let's say we want to create a new feature. We're going to add some HTML and CSS into the project: 

```html
<!--In index.html-->
<div class="feature"></div>
```

```css
/* In CSS file */
.feature {
  font-size: 2em; 
  /* Other styles */
}
```

To discard these changes: 

1. Go to the staging area
2. Select the files where you want to discard changes 
3. Right click on the files 
4. Select discard changes 

<figure>
  <img src="https://zellwk.com/images/2018/git-undo/discard.png" alt="Dischard changes in the contextual menu">
</figure>

## Scenario 2: Amending the previous commit

When you have created a commit and you missed out some changes. You want to add these changes in the previous commit message. 

You can: 

1. Go to the staging area 
2. Stage the files to commit 
3. Click on the amend checkbox 
4. Edit your commit message 
5. Commit

<figure>
  <img src="https://zellwk.com/images/2018/git-undo/amend.png" alt="The amend checkbox in the commit area">
</figure>

## Scenario 3: Rolling back to a previous commit

You already have a few commits in your local repository. You decide that you don't want these commits anymore. You want to "load" your files from a previous state. 

You can: 

1. Go into the Git History 
2. Right click the commit you want to roll back to 
3. Select reset `branch` to here

<figure>
  <img src="https://zellwk.com/images/2018/git-undo/reset.png" alt="Reset option in the contextual menu">
</figure>

Note: You can only reset to a commit that hasn't been pushed into the remote. 

## Scenario 4: Reverting a commit that has been pushed to the remote

If you have a commit that has been pushed into the remote branch, you need to revert it. 

Reverting means undoing the changes by creating a new commit. If you added a line, this revert commit will remove the line. If you removed a line, this revert commit will add the line back. 

To revert, you can: 

1. Go to the Git history 
2. Right click on the commit you want to revert
3. Select revert commit
4. Make sure `commit the changes` is checked. 
5. Click revert

<figure>
  <img src="https://zellwk.com/images/2018/git-undo/revert.png" alt="Revert in the contextual menu">
</figure>

<figure>
  <img src="https://zellwk.com/images/2018/git-undo/revert2.png" alt="Commit the changes option is checked">
</figure>

## Other scenarios

Github has a useful article that shows you how to undo almost everything with Git. It will be helpful if you face other scenarios. Read it [here][1]. 


[1]:	https://blog.github.com/2015-06-08-how-to-undo-almost-anything-with-git/ "How to undo almost anything with Git"

<hr>

Thanks for reading. This article was originally posted on [my blog](https://zellwk.com/blog/git-undo). Sign up for [my newsletter](https://zellwk.com) if you want more articles to help you become a better frontend developer.