How Do I Delete a Commit from a Branch?

Better Stack Team
Updated on June 24, 2024

To delete a commit from a branch in Git, you have a few options depending on whether the commit has already been pushed to a remote repository and whether you want to keep the changes introduced by the commit.

If the Commit Has Not Been Pushed Yet

If the commit you want to delete is the most recent commit and has not been pushed to a remote repository yet, you can use the following command:

 
git reset --hard HEAD~1

This command will remove the most recent commit from the branch along with all changes introduced by that commit. Replace 1 with the number of commits you want to remove if you need to delete more than one commit.

If the Commit Has Been Pushed to a Remote Repository

If the commit has already been pushed to a remote repository, it's not recommended to delete the commit as it will rewrite the history, which can cause issues for collaborators who have already pulled the changes. However, if you still need to delete the commit and are willing to force-push the changes to the remote repository, you can use the following command:

 
git push origin +<branch-name>

Replace <branch-name> with the name of the branch from which you want to delete the commit. The + sign before the branch name indicates a force-push, which will overwrite the remote branch's history with the changes from your local branch.

If You Want to Keep the Changes Introduced by the Commit

If you want to keep the changes introduced by the commit but remove the commit itself from the branch's history, you can use interactive rebase to squash the commit into the previous one or edit the commit message to make it appear as if the changes were part of a previous commit. However, be cautious when rewriting history, especially if the branch is shared with others.

 
git rebase -i HEAD~<number-of-commits>

Replace <number-of-commits> with the number of commits you want to include in the interactive rebase. In the interactive rebase window, you can choose to squash or edit commits as needed.

Note:

  • Be careful when deleting commits, especially if they have already been pushed to a remote repository and shared with others.
  • Make sure to communicate with your collaborators if you're making significant changes to the commit history.
  • Always create a backup or work on a separate branch if you're uncertain about the changes you're making.

Make your mark

Join the writer's program

Are you a developer and love writing and sharing your knowledge with the world? Join our guest writing program and get paid for writing amazing technical guides. We'll get them to the right readers that will appreciate them.

Write for us
Writer of the month
Marin Bezhanov
Marin is a software engineer and architect with a broad range of experience working...
Build on top of Better Stack

Write a script, app or project on top of Better Stack and share it with the world. Make a public repository and share it with us at our email.

community@betterstack.com

or submit a pull request and help us build better products for everyone.

See the full list of amazing projects on github