'Can Git show history for selected lines?
I have a large file where, somewhere in the middle, there is a function that I know has been modified several times. git annotate
or blame
will show the most recent commit for each line but if I'm right, it will show only the most recent one, not a list of other commits that affected that line before.
So is there a command in Git where I could say something like show me commits that affected lines 250..260 in file XYZ?
Solution 1:[1]
As suggested in one of the comments in Git - how do I view the change history of a method/function?, doing
git gui blame <file>
and then right-clicking a line and selecting Blame Parent Commit does what I need.
Solution 2:[2]
phpStorm can do this. Select the lines -> right-click -> Git -> Show History for Selection
Solution 3:[3]
git show $(git blame XYZ -L 250,260 | awk '{print $1}')
Solution 4:[4]
Select line -> Right-click->Git->Annotate
Solution 5:[5]
I think that's not possible. You will need to write a script around git blame. You can find a bash example of such a script on GitHub.
Solution 6:[6]
this fonctionnality made me switch to IntelliJ Idea. With IntelliJ you can select lines, right clic -> git -> Show history for selection
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 | Community |
Solution 2 | Richard Feraro |
Solution 3 | Community |
Solution 4 | konradwww |
Solution 5 | Sebi |
Solution 6 | soung |