Ever wondered why your changes are NOT getting committed in Git? 🤔
Or what exactly git commit -a does behind the scenes?
In this hands-on Git tutorial, you’ll clearly understand the difference between git add + git commit vs git commit -a, and when to use each approach.
This is one of the most important Git concepts for beginners and interviews — understanding how changes move from Working Directory → Staging Area → Repository.
🚀 What You’ll Learn
✔️ Difference between git add + git commit and git commit -a
✔️ Why staging is REQUIRED before committing
✔️ How to read git status -s for modified files
✔️ When git commit -a works (and when it FAILS)
✔️ How to verify commits using git show
🧠 Key Concepts Covered
• Working Directory vs Staging Area vs Repository (HEAD)
• Modified file lifecycle in Git
• Tracked vs Untracked files
• Meaning of " M" vs "M " in git status -s
🔬 Hands-On Lab (Step-by-Step)
In this lab, you will:
🔹 Create, stage, and commit a file
🔹 Modify the file and observe Git status
🔹 Commit changes using two-step approach (git add + commit)
🔹 Commit changes using one-step approach (git commit -a)
🔹 Validate changes using git show and staging inspection
💡 Key Takeaways
👉 git add + git commit → Explicit staging + commit
👉 git commit -a → Auto stages tracked files + commit
🔥 Most Important Insight:
👉 Git ALWAYS commits from the staging area
👉 Even git commit -a stages changes internally before committing
⚠️ Common Mistakes
❌ Running git commit -m "msg" after modifying a file → NOTHING happens
✅ Reason:
Changes were NOT staged
🚫 Limitation of git commit -a
👉 Works ONLY for:
• Modified tracked files
• Deleted tracked files
👉 Does NOT work for:
• New (untracked) files
💥 This is a TOP interview question!
🎯 Interview Gold Concepts
💥 " M" → Modified but NOT staged
💥 "M " → Modification staged
💥 git commit -a does NOT include new files
💥 Both approaches produce SAME final result
💥 Git workflow = Working → Staging → Repository
👨🎓 Perfect For
• Beginners learning Git step-by-step
• Students preparing for interviews
• Developers confused about staging vs commit
🔔 Don’t Forget
👍 Like | 💬 Comment | 🔔 Subscribe for more practical Git tutorials