Start here. This is the direct spoken answer to practice first.
Why this question matters
Revert records a new change that undoes earlier work, while reset moves a reference and can rewrite reachable history. Shared production branches need an auditable correction that does not invalidate commits other developers and pipelines already use.
git revert creates a new commit that undoes a previous commit. git reset moves the branch pointer and can rewrite history. On a shared branch like main or a release branch, I would usually use revert because it keeps history visible and safe for everyone. Reset is more appropriate for local work before it is shared.