⚡ ~/naveed Interview Prep
⚡ Portfolio Home ✍️ Engineering Blog Deep Dives 🎯 Interview Hub 998+ Scenarios ☸️ Kubernetes Mastery Hub 24 Modules 🎮 DevOps Arcade & Quizzes Subnet Blitz ⚡ 🗺️ DevOps Roadmaps PDFs & Guides 🤖 Morpheus Analysis AI Quant ↗ 🛠️ Developer Tools Utilities 🧪 Labs & Experiments 📄 Interactive CV & Certs 🔗 All Links & Socials ⚡ Join The Dispatch (Weekly SRE Newsletter) →
Junior / Associate DevOps [L1] Git Undo, Recovery & History Rewriting Core Fundamentals [L1]

Q: You have local changes in your working directory that you don't want anymore. How do you discard them, and what's the difference between discarding tracked vs untracked changes?

Different commands for different states — and one of them is destructive, so know which:

#Git #Undo, Recovery & History Rewriting #L1 #Version Control #Collaboration #Terraform State
🎙️ Candidate Opening & Architectural Context
""In a fast-paced team with dozens of pull requests merged daily, Git workflow hygiene was critical. The interviewer is testing: Understanding of the working tree, staging area, and untracked files.. I structure my answer around systematic triage first, root cause analysis second, and permanent remediation third.""
Advertisement

🛠️ Production Runbook & Step-by-Step Resolution

1️⃣

Initial Diagnostics & Root Cause Analysis

Different commands for different states — and one of them is destructive, so know which:

  • Modified tracked files (not staged): git restore (or older syntax git checkout -- ) reverts the file to what's in HEAD.
  • Staged changes: git restore --staged unstages, leaving the modification in the working tree. Add another git restore to discard it too.
  • Untracked (new) files: git restore won't touch them — Git doesn't know they exist. Use git clean -fd to delete them. Run git clean -nd first to preview what will be deleted.
2️⃣

Remediation & Permanent Safeguards

These are destructive — there's no undo for working-tree changes that were never committed. When unsure, git stash first; you can drop the stash later if you don't need it.

  • Nuke everything back to a clean checkout: git reset --hard HEAD && git clean -fd.
💡 The Senior SRE Gold Nugget (Key Architectural Takeaway)
"Pro-Tip: Modified tracked files (not staged): git restore (or older syntax git checkout -- ) reverts the file to what's in HEAD.."
⚡ 60-Second Elevator Pitch Talking Points
  • Modified tracked files (not staged): git restore (or older syntax git checkout -- ) reverts the ...
  • Staged changes: git restore --staged unstages, leaving the modification in the working tree. Add...
  • Untracked (new) files: git restore won't touch them — Git doesn't know they exist. Use git clean ...
Advertisement
Want more Git scenarios?
Explore our complete collection of scenario-based Git interview runbooks.
Browse All Git Questions →

📚 Related Production Scenarios in Git