If I found a bug in my application, sometimes I need to know which commits have affected to the bug source code line. I'm wondering which is the best approach to do it with Git.
Asked
Active
Viewed 2.8k times
5 Answers
53
To see commits affecting line 40 of file foo:
git blame -L 40,+1 foo
The +1 means exactly one line. To see changes for lines 40-60, it's:
git blame -L 40,+21 foo
OR
git blame -L 40,60 foo
The second number can be an offset designated with a '+', or a line number. git blame docs
ahaurat
- 3,537
- 3
- 23
- 21
-
How can I get the entire line history, not only the last one? – Pedro Apr 14 '21 at 22:26
-
1@Pedro you probably want `git log -L`. See this answer for more info: https://stackoverflow.com/a/19757493/2356383 – ahaurat Apr 14 '21 at 23:25
42
I'd use the git blame command. That's pretty much exactly what it is for. The documentation should get you started.
vcsjones
- 133,702
- 30
- 291
- 279
-
1will this give me the entire line history or only the last one? What if the line has be modified more than once and i want to check the changes each time the line has been modified. – Yash Kalwani Sep 20 '19 at 07:17
9
If you only need the last change:
git blame
Otherwise, you could try to automatically find the offending change with
git bisect
Frank Schmitt
- 28,996
- 10
- 68
- 104
-
1+1 for bisect. Good for trying to figure out which commit broke something without knowning exactly what is wrong. – vcsjones May 26 '11 at 19:24