375

At one point I found a way to show line-by-line Git blame within Visual Studio Code. I now cannot recall or find the means with which to do that. I have the Git Blame extension, but that only shows blame on a single selected line.

11 Answers 11

333

Use the Gitlens extension. It supports various options. Once installed, you can use Alt+B to show the full file blame information.

Sign up to request clarification or add additional context in comments.

13 Comments

So they implemented a ton of functionality but not git blame natively?
Or Ctrl+Shift+G B, if ones gitlens keymap is configured as 'chorded'.
At least on macOS there is a "Show File Annotation" icon in the top right corner. That toggles a bar showing the blame for each line.
Where do you see "Show File Annotation"? I can't find it. Do you use a plugin for this?
Once GitLens is installed, it also puts a little circular GitLens icon on the right of the tab bar (icon matches that for the extension in the left-hand activity bar). Clicking that will also show/hide the file blame area.
|
92

If you use the GitLens plugin, you can also use the "File Annotations" icon in the top right of Visual Studio Code:

GitLens - File Annotations Menu

Or use the "GitLens: Toggle File Blame" command.

4 Comments

that's the correct answer
I have git lens but this symbol is nowhere to be found.
@Black you might not be in a git repo. i just tried: (1) new project: no icon. (2) git init: no icon. (3) git add and commit: no icon. (4) close and re-open that file: now the icon shows up as on the screenshot. (i am on the currently latest v13.6.0)
@Black in my case it didn't show because the extension wasn't installed in WSL, when I was working on a WSL project.
55

I just installed Git Blame. It's out a while now, but it seems to be lightweight and very easy to use. I was able to get line-by-line details of who and when.

Enter image description here

5 Comments

This looks much better, and simpler. GitLens is completely overbloated.
Can you share how you got this to show like key combinations or whatever else it took?
This one also shows blame info for every line that you ever move your cursor to, similar to GitLens. It doesn't offer a way to view git blame info a single time on demand like IntelliJ.
Thank you for your answer. I installed this extension and set gitblame.inlineMessageEnabled to true in my settings json file. It worked as I wanted it to.
Caution: known performance issues. Spawns git process(es) every time you navigate to a line.
36

On Mac, if you have the GitLens plugin, it's Command + Option + G + B:

Enter image description here

5 Comments

this will only works with GitLens Plugin, which you don't mention...
To install GitLens, type Command + Shift + X, search "GitLens", click "install"
Thank you. For anyone else who infrequently uses VS code like myself who was struggling to remember how to access the Command Palette pictured above, it's Command + Shift + P
I have GitLens installed and Command Option G B does nothing.
@Snowcrash I thought the same. It's Command+Option+G followed by B, NOT Command+Option+G followed by Command+Option+B.
36

You can view the commit history for an individual file without a plugin using the Timeline view.

Enter image description here

See How can I view the Git history in Visual Studio Code? for more information.

4 Comments

But you can't view what commit a particular line was a part of directly
@Ridhuvarshan yup, that is correct, but I didn't want to install another VSCode plugin and this was "good enough" for my case
The question asks for a "git blame" equivalent: "show line-by-line git blame within vscode". You are giving a "git log" equivalent.
If you click the item, it shows the diff on the commit.... which was good enough for my use case (also didn't want to install another extension; I've used gitlens in the past but it was too heavy for me)
24

Add the Annotator extension. Here is the marketplace link to add it.

Source code: https://github.com/ryu1kn/vscode-annotator

2 Comments

possible usage: ctrl + shift + p, type annotator (or less), choose "Annotator: Annotate the current file or ...". Unfortunately (Annotator 1.0.0, VS Code 1.53.2), the annotated view is opened separately, with no syntax highlighting, block folding, scrolled to the top of the file and ctrl + g not working to go to the line
This deserves a bit more attention. Great tool and not bloated like GitLens.
20

As of today (April 2025), VSCode now includes built-in Git Blame support — you just need to enable it in the Settings.

https://github.com/microsoft/vscode/issues/205424#issuecomment-2504143954

enter image description here

2 Comments

After this setting is activated, how to use it? I tried right-click on the left sidebar on Codium but it seems not working. I see a couple of unrelated Diff decoration options already enabled, but no git blame.
It only applies to the line that has your cursor. It shows as an overlaid "hint" to the right of the code, and as a smaller thing in the status bar. If you want to show the full contextual blame for the whole file (like a normal person!) then I think you still need an extension for it.
13

Just set

  "git.blame.editorDecoration.enabled": true,

in VScode settings.
https://code.visualstudio.com/docs/sourcecontrol/overview#_git-blame-information

3 Comments

Prefer something native like this; curious to see how this compares with the Git Lens plugin.
For me this is good enough, there is also a possibility to configure displayed info sections, or show this message in bottom bar instead of editor
Excellent. Thank you. Displayed in the status bar is perfect. Should be the top answer ;)
10

I don't like the way GitLens integrates into Visual Studio Code. After looking around and trying a number of other git-related extensions, I settled on Git History. It can be installed via VSCode Quick Open (typically, Ctrl+P) with ext install donjayamanne.githistory.

It provides both full file and line-specific git blame from the context menu:

Enter image description here

2 Comments

This deserves more upvotes. I don't want VSCode to spawn git-processes every time I navigate to a line (like GitLens or Git Blame). I just want to see line history on demand.
I prefer Git History but it does not show full file git blame unfortunately, like line by line and this is very useful from time to time.
5

GitLens provides the functionality of full-file git blame. To execute the command:
Press Ctrl+Shift+G, followed by pressing only B.

Note: When pressing B, do not press the Ctrl and Shift buttons. The command will work correctly in this manner.

I have personally validated this command on VS Code version 1.81.0 and GitLens version 14.2.0. Some users have reported issues with this command, but it's possible they are inadvertently pressing Ctrl and Shift buttons while pressing B.

2 Comments

Thanks the tip to not press ctrl+shift when pressing B solved it for me
Still running in version 1.87.2 in 2024.
3

Git Blame W77 is a lighweight extension that does what you want. I tested it myself seems to work well.

enter image description here

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.