- Published on
How to revert Terraform changes?
Reverting Terraform plan changes depends on what stage you are at: before applying, after applying, or after partially applying. Here’s the clear breakdown.
✅ 1. If you have NOT applied yet (terraform apply not run)
Good news — nothing has changed in real infrastructure yet.
To revert:
Option A — Discard local changes
If you changed .tf files and no longer want those changes:
git checkout -- .
(or whatever version-control method you use).
Then run:
terraform plan
You should now see no changes.
✅ 2. If you already APPLIED the plan (terraform apply completed)
Terraform itself cannot "undo" changes automatically. To revert:
Option A — Restore previous configuration and re-apply
- Check out the older version from Git (or backup):
git checkout <previous_commit>
- Apply again:
terraform apply
Terraform will then produce a new plan that “undoes” whatever the last apply changed.
✅ 3. If you applied changes but want to roll back ONLY some resources
You must restore the previous desired state in your .tf files.
Terraform will then:
- Delete resources that should not exist
- Recreate resources with old attributes
- Update resources to previous settings
There is no single rollback command — reversion is achieved by re-applying the old configuration.
✅ 4. If apply FAILED halfway (partial apply)
Terraform state may contain partially created resources.
To revert:
Option A — Fix configuration, then apply again
Terraform will detect drift and correct it.
Option B — Manually remove bad resources from state
Use only if necessary:
terraform state rm <resource>
Then re-run:
terraform apply
❌ What does NOT exist
Terraform has no:
terraform undoterraform rollback- automatic revert mechanism
Everything is done by changing code back and running apply.
📌 If you want truly reversible deployments
Use:
- Git versioning for
.tffiles - Terraform workspaces (sometimes)
- Terragrunt with versioned configurations
- CI pipelines that apply from tagged releases