🔍 Who Wrote This Code?
Bug in production. Need to know who wrote line 247. git blame tells you author, date, commit.
Basic Usage
# Entire file
git blame filename.js
# Specific line range
git blame -L 100,150 filename.js
# Show line 247 only
git blame -L 247,247 filename.js
# Output:
# abc12345 (John Doe 2024-01-15 14:23:45) const buggyFunction = () => {
🎯 Useful Flags
# Show email instead of name git blame -e filename.js # Ignore whitespace changes git blame -w filename.js # Show commit message git blame -s filename.js | git show abc12345 # Find who moved/copied this code git blame -C filename.js # Follow through file renames git blame -M filename.js
VS Code Integration
GitLens Extension: Shows git blame inline as you code
- Hover over any line → See author, date, commit message
- Click commit hash → View full diff
- No terminal needed
Real Debugging Workflow
# 1. Find buggy line
git blame -L 247,247 app.js
# Output: abc12345 (Sarah 2024-01-10) if (user = admin) {
# 2. View full commit
git show abc12345
# 3. See what changed
git diff abc12345^ abc12345
# 4. Contact Sarah or check commit message for context
💡 Pro Tip: Ignore Formatting Commits
# Create .git-blame-ignore-revs echo "abc1234" >> .git-blame-ignore-revs # Configure git to use it git config blame.ignoreRevsFile .git-blame-ignore-revs # Now blame ignores that formatting commit
“Production bug traced to line 512. Git blame showed it was added 6 months ago in PR #347. Found original context, fixed properly instead of band-aid fix.”
