Reverting Commits

24.1 What Reverting a Commit Means

Reverting creates a new commit that undoes the changes introduced by a previous commit. The original commit remains in history, making revert safe for shared branches.

24.2 Basic Revert Command

To revert a single commit:
1git revert <commit-hash>

Example:
1git revert a1b2c3d

Git opens an editor to confirm the revert commit message.

24.3 Reverting the Latest Commit

To undo the most recent commit:
1git revert HEAD

This is the safest way to undo a bad commit on main or develop.

24.4 Reverting Multiple Commits

To revert a range of commits:
1git revert <oldest>..<latest>

Example:
1git revert HEAD~3..HEAD

Each commit is reverted individually.

24.5 Revert Without Auto-Commit

To review changes before committing:
1git revert --no-commit <commit-hash>

This applies the inverse changes but leaves them staged.

24.6 Handling Revert Conflicts

Conflicts may occur if later commits depend on reverted changes.

Steps:
1. Resolve conflicts manually
2. Stage resolved files
3. Continue revert:
1git revert --continue

Stashing is safer and reversible (covered later).

24.7 When to Use Revert vs Reset

Use revert on shared branches
Use reset only for local history cleanup
Revert preserves collaboration safety

24.8 Key Takeaways

git revert undoes changes by creating a new commit.
Reverting does not rewrite history.
Safe for public and shared branches.
Can revert single or multiple commits.
Prefer revert over reset on pushed commits.