Git Reset vs Git Revert: Differences & When to Use