Push different code to production, either the last-known-good commit, or new code with the issue fixed.
I imagine that much larger operations likely do feature flags or a rolling release so that problems can be isolated to a small subset of production before going wide. But still the same principle, redeploy with different code.