'Line history viewer - Git
I wondered if any of you knew of a tool that would allow me to select a line in my code and then view a list view of the history of that line on a commit-by-commit basis.
Does anyone know of such a tool?
Solution 1:[1]
I know only the IntelliJ IDEA "Viewing Changes History for Selection" feature.
You could also try to use several git blame
commands to iterate over history of a fragment.
Solution 2:[2]
Solution 3:[3]
If you would like to view inline
such information then you may add GitToolBox plugin. Live example on YT
Solution 4:[4]
git blame (docs)
git-blame
shows what revision and author last modified each line of a file.
Usage examples
When you are interested in finding the origin for lines 40-50 for file foo, you can use the -L option like so (they mean the same thing?—?both ask for 11 lines starting at line 40):
git blame -L 40,50 foo.txt
git blame -L 40,+11 foo.txt
You can specify a revision for git blame to look back starting from (instead of the default of HEAD) if you want to find out who edited that lines before a specific commit (fe25b6d in this example; fe25b6d^ is the parent of fe25b6d):
git blame -L 40,+11 fe25b6d^ -- foo.txt
Solution 5:[5]
git log (docs)
git-log
shows commit logs.
Usage example
You can specify -L option to trace the evolution of the line range given by ",". You can specify this option more than once.
git log -L 40,50:foo.txt
Solution 6:[6]
If you are using IntelliJ then, its annotation feature provides an option to do the annotation on previous revision. Using this option you can go back to the history of that line.
Find below screen-shot which shows, This option and its available in the community edition as well.
Solution 7:[7]
As suggested in one of the comments in Can Git show history for selected lines?
git show $(git blame example.js -L 250,260 | awk '{print $1}')
more info: Every line of code is always documented.
Solution 8:[8]
In IntelliJ, you can use show history for selection in the git submenu after selecting a line/ multiple lines.
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 | José Andias |
Solution 2 | Community |
Solution 3 | |
Solution 4 | Community |
Solution 5 | Community |
Solution 6 | |
Solution 7 | Community |
Solution 8 | Vishrant |