Git

Lesson 08

Revert vs reset

Use revert for shared history and reserve reset for local cleanup before commits leave your machine.

Good Code

undo-shared-change.sh
# Revert preserves shared history while undoing behavior.
git fetch origin
git switch main
git pull --ff-only
git revert 4f3a2b1
git push

Bad Code

undo-shared-change.sh
# Resetting shared main rewrites history for everyone else.
git switch main
git reset --hard HEAD~1
git push --force

Review Notes

What to review

Good Code

The good version creates a new commit that undoes a shared change, preserving history that teammates may already have.

Bad Code

The bad version rewrites shared history on main, forcing everyone else to reconcile their local repositories.

Takeaways

  • History commands should match whether the commits are already shared with other people.