boucle ∞

Sparking curiosity, facilitating knowledge-sharing, and fostering community interaction.

Rectifying a Bad Commit in Git: A Step-by-Step Guide
Published 18 july 2023

Git is an incredibly powerful tool for managing and collaborating on projects of any size. But with great power comes great responsibility, and sometimes mistakes are made. Don’t worry! Git provides several ways to fix a bad commit. In this article, we’ll explore how to rectify a bad commit step by step.

Step 1: Identify the Bad Commit

The first step is to identify the commit that you want to correct. Git keeps a record of all the commits you’ve made in your repository. You can view this history using the git log command.

1
git log

This command will show you a list of all your previous commits in reverse chronological order. Each commit is represented by a unique SHA-1 hash, followed by the commit message, the author, and the date and time of the commit. Identify the hash of the commit that you want to correct.

Step 2: Choose the Correct Method

Depending on the state of your project and the nature of the mistake, there are different methods you might want to use to rectify a bad commit:

  • git commit –amend: If the bad commit was the most recent one and you haven’t pushed your changes to a remote repository yet, you can use git commit --amend to easily modify it.

  • git revert: If you want to undo the changes introduced by a commit, but keep the history of all the changes made, use git revert.

  • git reset: If you need to completely remove a commit from your history, use git reset.

Step 3: Apply the Correct Method

Amend the Most Recent Commit

To amend the most recent commit, you can simply make the necessary changes to your files, stage them with git add, and then run git commit --amend.

1
git commit --amend -m "New and correct commit message"

Revert a Commit

To revert a commit, simply use the git revert command followed by the hash of the bad commit:

1
git revert commit-hash

This command will create a new commit that undoes the changes made in the bad commit, while preserving the history of your project.

Reset a Commit

If you want to completely remove a commit from your history, you can use the git reset command. The --hard option will delete the commit and all the changes introduced by it:

1
git reset --hard commit-hash^

Replace commit-hash with the hash of the commit you want to remove. The ^ character refers to the parent of the specified commit, which will be the new HEAD after the command is executed.

Step 4: Push Your Changes to the Remote Repository

Once you’ve rectified the bad commit locally, you’ll want to update the remote repository.

If you used git commit --amend or git reset, and if you had previously pushed the bad commit to the remote repository, you’ll have to force push your new commit:

1
git push origin branch-name --force

Be careful with git push --force, as it can overwrite changes in the remote repository. Use it sparingly and only when you’re sure it’s necessary.

If you used git revert, a simple git push will suffice:

1
git push origin branch-name

Rectifying a bad commit may seem like a daunting task, but with the right tools and commands, it can be done quickly and efficiently. Mistakes are a part of any development process, and Git provides robust tools to correct them when they occur. Happy coding!

Lucian

Open source enthousiast.

×