How to undo last Git Commit on Local Repository?


If you made a commit to your git local repository and you want to undo it, you should make use of the git reset command.

There are three flags or options you may use depending upon what your use case is.

We have done two commits:
$ touch File1.txt File2.txt
$ git add File1.txt
$ git commit -m "Commit 1"

$ git add File2.txt
$ git commit -m "Commit 2"

$ git log --oneline 
341ab47 (HEAD -> main) Commit 2
3291fc9 Commit 1

1. Undo the Last Commit completely with a hard reset

If you do not want the files that were committed in the last commit to your local repository make use of the --hard option.

$ git reset --hard HEAD^1
HEAD is now at 3291fc9 Commit 1

Note this case you will lose the files that were committed as the modifications you made to the existing file.

$ ls
File1.txt

$ git status
On branch main
nothing to commit, working tree clean
Git Undo Last Commit with Hard Reset

2. Undo Last Commit with a soft reset

If you want to undo your last commit, but want to retain the files that were committed in the last commit make use of the --soft flag.

$ git reset --soft HEAD^1

$ ls
File1.txt	File2.txt

$ git status
On branch main
Changes to be committed:
  (use "git restore --staged ..." to unstage)
	new file:   File2.txt

Note that changes you made or the new files added will remain in the staged area.

Undo Previous Commit in Git using Soft Reset

3. Undo Last Commit with a mixed reset

If you want to undo your last commit, but want to retain the files that were committed in the last commit in the working area make use of the --mixed flag.

$ git reset --mixed HEAD^1

$ ls
File1.txt	File2.txt

$ git status
On branch main
Untracked files:
  (use "git add ..." to include in what will be committed)
	File2.txt

nothing was added to commit but untracked files are present (use "git add" to track)

As you can see the new file that was committed is now moved to the working area and is untracked.

Git Mixed revert last commit

Facing issues? Have Questions? Post them here! I am happy to answer!

Author Info:

Rakesh (He/Him) has over 14+ years of experience in Web and Application development. He is the author of insightful How-To articles for Code2care.

Follow him on: X

You can also reach out to him via e-mail: rakesh@code2care.org



















Copyright © Code2care 2024 | Privacy Policy | About Us | Contact Us | Sitemap