August 2019

  Using Git reset to undo the last commit
August 1   |   Git

Sometimes we need to undo our last commit but we don't want to lose the changes we've already made. There are several reasons, sometimes we made a commit prematurely or we forgot to add a file, etc.

WARNING: These commands assume we haven't sync/publish the changes to a remote origin.

git reset: What it actually does is that moves the actual branch to X commit, so, using HEAD~1 or "HEAD^" (both are valid) we move the actual branch to the previous commit, example:

 git reset


\$git reset HEAD~1

If we included --soft as parameter it will mark the files (actual changes) ready to commit

 Using soft


\$git reset --soft HEAD~1

Ok then, as simple as that, but sometimes we require to clean up a little and reflect that on the commit message in that case use git commit --amend (Notice that this will open our configured editor to change the message), example:

 Use amend


$git rm private.key
$git commit --amend

Use case, You committed your code twice but noticed there is an error in the author

 Fix the author


$git reset HEAD~1
$git commit --amend --author="Jorge Anaya "
$git add .
$git commit -m "Fix bla bla bla"