Hosting Operations
Revert the Suspect Release Commit
The suspect release has already been shared, and you need a rollback commit that preserves branch history.
Command
cd /lab/git-recovery-rollback && git restore -- app/config.yml && git revert --no-edit release-2026-06-25-1030
What changed
The dirty config line is discarded, then a new local revert commit is created inside the disposable demo repository.
Danger
caution
When to use it
Use when a bad commit is already published or shared and rollback should be represented as a forward-moving commit.
When not to use it
Do not use revert blindly when the bad release included database migrations or external side effects that need a separate rollback plan.
Undo or recovery
Reset the disposable fixture branch back one commit or recreate the fixture.
Expected output
Git restores the dirty file, creates a revert commit, and the recent log shows the new Revert commit above the suspect release.
demo script
Disposable terminal steps
cd /lab/git-recovery-rollback && git status --short && git log --oneline --decorate -3cd /lab/git-recovery-rollback && git restore -- app/config.yml && git revert --no-edit release-2026-06-25-1030cd /lab/git-recovery-rollback && git log --oneline --decorate -4
simulated output
What it looks like
::fixture-ready::
$ cd /lab/git-recovery-rollback && git status --short && git log --oneline --decorate -3
M app/config.yml
?? releases/current
de583c6 (HEAD -> main, tag: release-2026-06-25-1030) Release 2026-06-25 10:30
c15c7c6 (tag: release-2026-06-25-1000) Release 2026-06-25 10:00
ddb9d51 (tag: release-2026-06-24-1700) Release 2026-06-24 17:00
::exit-code::0
$ cd /lab/git-recovery-rollback && git restore -- app/config.yml && git revert --no-edit release-2026-06-25-1030
[main 13b32e2] Revert "Release 2026-06-25 10:30"
Date: Fri Jun 26 00:27:39 2026 +0000
4 files changed, 3 insertions(+), 6 deletions(-)
delete mode 100644 db/migrate.sql
delete mode 100644 releases/2026-06-25-1030/VERSION
::exit-code::0
$ cd /lab/git-recovery-rollback && git log --oneline --decorate -4
13b32e2 (HEAD -> main) Revert "Release 2026-06-25 10:30"
de583c6 (tag: release-2026-06-25-1030) Release 2026-06-25 10:30
c15c7c6 (tag: release-2026-06-25-1000) Release 2026-06-25 10:00
ddb9d51 (tag: release-2026-06-24-1700) Release 2026-06-24 17:00
::exit-code::0
YouTube Short
Revert, do not rewrite.
If the bad release commit is already shared, create a revert commit. History keeps moving forward and the rollback is reviewable.
LinkedIn hook
Undo a bad release with a new commit instead of rewriting history.
Question: When do you prefer git revert over resetting a release branch?
experiments
A/B tests to run
Metric: completion_rate
A: Revert shared history.
B: Rollback with a new commit.