Git provides powerful features to alter commit history, allowing you to change commit messages, reorder commits, or remove them to maintain a clean project history.
- Modify, reorder, or remove commits.
- Helps manage and maintain clean project history.
- Should be used carefully to avoid unintended changes.
Commands for Altering Commit History
Commands used to modify, reorganize, or rewrite commit history in Git.
1. git commit --amend
Used to modify the most recent commit.
- Change commit message or update files
- Replaces the last commit with a new one
git commit --amend
git commit --amend -m "Updated message"
git commit --amend --no-editThis option helps you to commit remaining changes if any without changing it's commit message.
2. git rebase
Used to modify or reorganize commit history by changing the base of a branch.
- Creates a cleaner, linear history.
- Reapplies commits onto a new base.

Interactive Rebase
- Interactive rebase lets you rewrite commit history by editing, reordering, squashing, or deleting commits.
- It’s useful for cleaning up commits before sharing changes with others.
git rebase -i HEAD~3Rebase Options
These options control and manage the rebase process during or after conflicts.
- git rebase --continue: Continue after resolving conflicts
- git rebase --abort: Cancel and restore original state
- git rebase --quit: Stop rebase without resetting HEAD
3. git filter-branch
Used to rewrite large portions of commit history.
- Remove files from all commits.
- Modify author/email globally.
- Restructure repository.