Skip to content

Bits of .NET

Daily micro-tips for C#, SQL, performance, and scalable backend engineering.

  • Asp.Net Core
  • C#
  • SQL
  • JavaScript
  • CSS
  • About
  • ErcanOPAK.com
  • No Access
  • Privacy Policy
Git

Git: Use git blame -L to Find Who Wrote Specific Lines

- 19.03.26 - ErcanOPAK

🔍 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.”

— Senior Developer

Related posts:

Git Hooks Automation: Pre-commit Checks That Save Hours of Debugging

Git: Use .gitattributes to Handle Line Endings Across OS

Git: Surgical Fixes with Cherry-Pick - Move One Commit, Not the Branch

Post Views: 13

Post navigation

Git: Use Interactive Rebase to Clean Up Commit History
.NET Core: Use Minimal APIs for Lightweight Endpoints

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

April 2026
M T W T F S S
 12345
6789101112
13141516171819
20212223242526
27282930  
« Mar    

Most Viewed Posts

  • Get the User Name and Domain Name from an Email Address in SQL (950)
  • How to add default value for Entity Framework migrations for DateTime and Bool (858)
  • Get the First and Last Word from a String or Sentence in SQL (836)
  • How to select distinct rows in a datatable in C# (805)
  • How to make theater mode the default for Youtube (751)
  • Add Constraint to SQL Table to ensure email contains @ (578)
  • How to enable, disable and check if Service Broker is enabled on a database in SQL Server (564)
  • Average of all values in a column that are not zero in SQL (531)
  • How to use Map Mode for Vertical Scroll Mode in Visual Studio (489)
  • Find numbers with more than two decimal places in SQL (447)

Recent Posts

  • C#: Use Init-Only Setters for Immutable Objects After Construction
  • C#: Use Expression-Bodied Members for Concise Single-Line Methods
  • C#: Enable Nullable Reference Types to Eliminate Null Reference Exceptions
  • C#: Use Record Types for Immutable Data Objects
  • SQL: Use CTEs for Readable Complex Queries
  • SQL: Use Window Functions for Advanced Analytical Queries
  • .NET Core: Use Background Services for Long-Running Tasks
  • .NET Core: Use Minimal APIs for Lightweight HTTP Services
  • Git: Use Cherry-Pick to Apply Specific Commits Across Branches
  • Git: Use Interactive Rebase to Clean Up Commit History Before Merge

Most Viewed Posts

  • Get the User Name and Domain Name from an Email Address in SQL (950)
  • How to add default value for Entity Framework migrations for DateTime and Bool (858)
  • Get the First and Last Word from a String or Sentence in SQL (836)
  • How to select distinct rows in a datatable in C# (805)
  • How to make theater mode the default for Youtube (751)

Recent Posts

  • C#: Use Init-Only Setters for Immutable Objects After Construction
  • C#: Use Expression-Bodied Members for Concise Single-Line Methods
  • C#: Enable Nullable Reference Types to Eliminate Null Reference Exceptions
  • C#: Use Record Types for Immutable Data Objects
  • SQL: Use CTEs for Readable Complex Queries

Social

  • ErcanOPAK.com
  • GoodReads
  • LetterBoxD
  • Linkedin
  • The Blog
  • Twitter
© 2026 Bits of .NET | Built with Xblog Plus free WordPress theme by wpthemespace.com