Git, the distributed version control system, is a powerful tool that allows developers to manage and track changes in their projects efficiently. Despite its robustness, developers sometimes find themselves needing to undo a commit, either due to a mistake, a change in requirements, or other reasons. Git provides several ways to revert changes, and one of the common methods is using the git revert
command. In this blog post, we will explore how to use git revert
to undo the last commit and understand its implications.
Let’s say we are working on your code in Git and something didn’t go as planned. So now we need to revert our last commit. How do we do it? Let’s find out!
There are two possible ways to undo your Git last commit
- revert Command — The
revert
command will create a commit that reverts the changes of the commit being targeted. means here git will create a new commit that contains reverted changes so that we will maintain commit history in the shared repository.
git revert <commit name to revert>
Example :
— -> commit 1 — → commit2 — → commit c1
git revert c1
— -> commit 1 — → commit2 — → commit3 — → commit reverting c1
2. reset Command — the reset
command to undo your last commit. So be careful. it will change the commit history, it will move the HEAD of the working branch indicating commit and discard anything after.
we use the reset command with two options
a. The --soft
option means that you will not lose the uncommitted changes you may have.
git reset --soft HEAD~1
b. If you want to reset to the last commit and also remove all unstaged changes, you can use the --hard
option:
git reset --hard HEAD~1
This will undo the latest commit, but also any uncommitted changes.
When should we use reset or revert?
we should really only use reset
if the commit being reset only exists locally. This command changes the commit history and it might overwrite the history that remote team members depend on.
revert
instead creates a new commit that undoes the changes, so if the commit to revert has already been pushed to a shared repository, it is best to use revert
as it doesn’t overwrite commit history.
Conclusion
Undoing the last commit using git revert
is a safe and effective way to manage mistakes or changes in your Git project without altering the commit history. It promotes collaboration by preserving the commit history’s integrity and allows for seamless integration with subsequent changes. Understanding the implications of git revert
empowers developers to make informed decisions when managing their version-controlled projects.