While working on a Terraform project, I ran into several Git push errors that initially felt confusing and frustrating. However, each error turned out to be a valuable learning moment. This article documents those issues step by step, explains why they happen, and shows how to fix them correctly.
If you’re learning Terraform, DevOps, or Infrastructure as Code, chances are you’ll encounter these same problems.
1️⃣GitHub Rejects Large Files (>100 MB)
Error:
File .terraform/...terraform-provider-aws is larger than 100 MB
Why this happens
The .terraform/ directory was committed. This directory contains Terraform provider binaries, which can be hundreds of megabytes in size and should never be version-controlled.
Correct Fix
Add the following to .gitignore
.terraform/
*.tfstate
*.tfstate.backup
If the file already exists in Git history, the cleanest approach for new projects is to reinitialise the repository:
rm -rf .git
git init
git add .
git commit -m <commit-id>
2️⃣GitHub Push Protection Blocks Secrets
Error:
Push cannot contain secrets (AWS Access Key detected)
Why this happens
AWS credentials were hardcoded inside provider.tf. GitHub automatically scans commits for secrets and blocks pushes to prevent credential leaks.
What Not to Do
provider "aws" {
access_key = "AKIA..."
secret_key = "xxxx"
}
Correct Approach
provider "aws" {
region = "us-east-1"
}
(or add credentials in another file and add that file in .gitignore)
Provide credentials securely using:
aws configure
Environment variables
IAM roles (recommended for EC2, CloudShell, CI/CD)
⚠️ If credentials were committed, they should be rotated immediately, even if the push was blocked.
Top comments (0)