How To Undo Git Add

So, you’re working on a project, and you’ve accidentally added a file to the staging area using git add. It happens to the best of us, but fear not! I’m here to guide you through the process of undoing a git add command and getting your files back to their pre-staging state.

Checking the Status with git status

When you realize you’ve added the wrong file, the first step is to check the status of your repository using git status. This command will show you which files are in the staging area and which are not. It’s always a good idea to start here to understand the current state of your repository.

Using git reset HEAD

The magic command to undo a git add is git reset HEAD <file>. This command removes the specified file from the staging area, but it leaves the working directory unchanged. So, if I accidentally added a file named “app.js”, I would use the following command:

git reset HEAD app.js

It’s worth noting that you can also unstage all changes by using git reset without specifying a file. This will unstage all changes, giving you a clean slate to work with.

Confirming the Changes

To confirm that the file has been successfully removed from the staging area, you can run git status again. You should see the file listed under “Changes not staged for commit,” indicating that it is no longer in the staging area.

Reviewing Changes with git diff

After undoing the git add, it’s a good idea to review the changes using git diff. This will show you the differences between the working directory and the staging area, giving you a clear view of the current state of your files.

Committing the Changes

Once you’ve confirmed that the files are in the right state, you can proceed with committing your changes as usual using git commit. Remember to add a descriptive commit message to explain the changes you’re committing.


Undoing a git add may seem like a daunting task at first, but with the right commands and a little attention to detail, it’s a straightforward process. By using git reset HEAD and evaluating the changes with git status and git diff, you can easily revert files to their previous state and continue with your project. Happy coding!