Git Undo Last Commit

By  on  

I'm a massive fan of git; it's super powerful and easy to use, especially when it comes to branching.  The biggest sin I commit when using git is adding files and then committing them...to master branch instead of a feature branch.  Oops.  Certainly don't want that.

If you've done a git add (files) and then commit them to the wrong branch, backing that out is easy:

git reset --soft HEAD~1

With the command above, the files are still added but not committed, so you can create your feature branch, do another git commit -m (message), and be on your way!

Recent Features

  • By
    CSS @supports

    Feature detection via JavaScript is a client side best practice and for all the right reasons, but unfortunately that same functionality hasn't been available within CSS.  What we end up doing is repeating the same properties multiple times with each browser prefix.  Yuck.  Another thing we...

  • By
    Create a CSS Flipping Animation

    CSS animations are a lot of fun; the beauty of them is that through many simple properties, you can create anything from an elegant fade in to a WTF-Pixar-would-be-proud effect. One CSS effect somewhere in between is the CSS flip effect, whereby there's...

Incredible Demos

  • By
    JavaScript Speech Recognition

    Speech recognition software is becoming more and more important; it started (for me) with Siri on iOS, then Amazon's Echo, then my new Apple TV, and so on.  Speech recognition is so useful for not just us tech superstars but for people who either want to work "hands...

  • By
    Introducing MooTools Templated

    One major problem with creating UI components with the MooTools JavaScript framework is that there isn't a great way of allowing customization of template and ease of node creation. As of today, there are two ways of creating: new Element Madness The first way to create UI-driven...

Discussion

  1. Yuriy Husnay

    The other way to achieve this, is

    git reset --soft HEAD^
    

    as HEAD^ is pointer to HEAD~1

    Personally, I have an alias git undo which is:

    git config --global alias.undo 'reset --soft HEAD^'
    
  2. MaxArt

    Git “easy to use”… Uh, what?
    It’s a very complete and powerful tool, no doubt about it, but I wouldn’t call it “easy”. There’s a plethora of options and unclear docs, that it takes a lot of time just to know they exist, not to mention actually use them and get used to them.
    For example, I knew about this trick, but didn’t know about Yuriy’s suggestion.

    That’s why I end up using a tool like SourceTree instead.

Wrap your code in <pre class="{language}"></pre> tags, link to a GitHub gist, JSFiddle fiddle, or CodePen pen to embed!