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
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.
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.
Have Questions? Post them here!
- [Fixed] Git Clone firstname.lastname@example.org: Permission denied (publickey) Could not read from remote repository Fatal error
- Github: How to Invite Collaborators
- Git Commit - Author identity unknown, Please tell me who you are email
- [Solution] fatal: not a git repository (or any of the parent directories): .git
- [fix] zsh: command not found: git
- Github: fatal: Authentication failed Support for password was removed on August 13, 2021
- Get List of all local branches git command
- Git Revision Questions Before the Interview
- git fatal: Authentication failed error [fix]
- How to Install Git on Ubuntu Linux
- GitHub: How to Search Code
- How to change Git Default Author and Committer details in Eclipse
- How to check your installed version of Git
- Install GitHub Command Line Tool on Mac
- How to Merge Branch into Master Branch
- Perform an Empty Commit in Git without anything in Staging Area
- Git Fix: fatal: refusing to merge unrelated histories Error
- How to undo last Git Commit on Local Repository?
- git command to remove/unstage files from staging area
- Step-by-Step: Setting up Docker + Ubuntu Linux + Git + GitHub Tutorial
- Remove git config at Local, Global or System Levels?
- Fix [oh-my-zsh] Cant update: not a git repository
- Git Config Command - A Deep Dive
- fatal: Unable to create '/c/git_repo/.git/index.lock': File exists. If no other git process is currently running, this probably means a git process crashed in this repository earlier.
- How to change directory in Git bash
- Top 10 emerging breakthrough trending technologies - HowTos
- How to the Install Official Android Emulator for Mac? - Android
- Step-by-Step: How to delete a git branch from local as well as remote origin - Git
- M365 service Europe outage - AADSTS90033 A transient error has occurred. Please try again. - Microsoft
- How to turn off Dark Mode in Excel App for Mac - Windows
- How to Hum a Song to Google to find it out! [Android and iPhone] - Google
- Java: Convert Double to 2 Decimal Places [Examples] - Java
- How to check PowerShell version - Powershell