DEV Community

Want to remove/delete your last commit? Here is how.

foadlind on March 09, 2020

1. To remove a commit done locally: You made a commit and then realized you want to remove it. But, you still want to keep your changes....
Collapse
 
dawidtabak profile image
Dawid Tabak

You could slightly shorten the first command with

git reset --soft HEAD^

This is especially handy when using git in powershell cli on windows, where you'd otherwise have to put 'HEAD@{1}' inside quotes.

Collapse
 
rad_hombre profile image
Matthew Orndoff

Let's go even shorter 🤤

git reset --soft @^
Collapse
 
foadlind profile image
foadlind

Yes you are right. I will update the article. Thanks.

Collapse
 
danielpdev profile image
danielpdev

Great post.
You could also use git reset --hard HEAD~1 to remove the last commit, be aware that it will also remove all of your uncommitted changes.

Collapse
 
darshanraval profile image
Darshan Raval

Hey It's Nice. It's very useful for me. 😁

Collapse
 
nollidnosnhoj profile image
Dillon Johnson

Nice. Thanks for the tip! Very useful!

Collapse
 
mikedubcurry profile image
Michael Curry

say I push some api secrets to the repo. Would the second method overwrite the commit or will,say my .env file still be accessible?

Collapse
 
mikedubcurry profile image
Michael Curry

When I started out, I left my .env files out of .gitignore for the majority of a project and had to resort to starting a fresh repo. Was that necessary if the commits were already so far back in the history?

Collapse
 
lt0mm profile image
Tom

As I understand you can use interactive rebase and then push force. I used this way and I could not find later any mention of my secret word, I hope somebody corrects me if I'm wrong

git rebase -i {prev_commit_hash}
git push -f

PS Interactive rebase is a big topic itself, but to delete commit it's enough to write "d" or "drop" in commit line which you want to delete

Thread Thread
 
mikedubcurry profile image
Michael Curry

Oh ok. At the time I ended up deleting the repo and copy pasting my files in with an updated .gitignore. Good to know there’s a better alternative

Collapse
 
hoxtygen profile image
Idowu Wasiu

Thanks for this. I'm planning on having git command collection so I don't have to do a Google search each time I need to do something sinister with git. This one is handy.

Collapse
 
maedox profile image
Pål Nilsen

I recently started using the Github desktop app and found that it has an undo button.