GitLens is an open-source extension for Visual Studio Code, created by Eric Amodio. While GitLens is generously offered to everyone free of charge, if you find it useful please consider supporting it.
GitLens supercharges the Git capabilities built into Visual Studio Code. It helps you to visualize code authorship at a glance via Git blame annotations and code lens, seamlessly navigate and explore Git repositories, gain valuable insights via powerful comparison commands, and so much more.
GitLens simply helps you understand code better. Quickly glimpse into whom, why, and when a line or code block was changed. Jump back through history to gain further insights as to how and why the code evolved. Explore the history and evolution of a codebase.
While GitLens is generously offered to everyone free of charge, if you find it useful please consider supporting it.
I've been building GitLens in my spare time1 for almost 2 years now. From its very humble beginnings, GitLens has grown wildly beyond my expectations — in both its reach as well as its demands on my time and attention. While I enjoy giving my free time and attention to GitLens' development and growth, I would like to do even more.
Show Your Support ❤
To my incredible backers — thank you so much for your contributions. I am truly humbled by your generosity and support. Please know that your support plays a important role in helping me realize GitLens' potential in making developer's lives easier.
If you'd like to join them in supporting GitLens, please consider the following — feel free to choose more than one. 😉
What's new in GitLens 8
- 8.3 MAY 2018
- NEW Adds the ability to control where the GitLens, GitLens History, and GitLens Results explorers are shown 🎉 — closes #213, #377
- NEW Adds user-defined modes for quickly toggling between sets of settings
- NEW Adds Switch Mode command (
gitlens.switchMode) to quickly switch the active GitLens mode
- NEW Adds Toggle Zen Mode command (
gitlens.toggleZenMode) to toggle Zen mode which disables many visual features
- NEW Adds Toggle Review Mode command (
gitlens.toggleReviewMode) to toggle Review mode which enables many visual features
- NEW Adds modes settings (
gitlens.mode.*) to the interactive settings editor
- NEW Adds an icon for the Compare File with Previous Revision command (
gitlens.diffWithPrevious) and moves it into the editor toolbar
- NEW Adds an icon for the Compare File with Next Revision command (
gitlens.diffWithNext) and moves it into the editor toolbar
- NEW Adds menu settings (
gitlens.menus.*) to the interactive settings editor
- NEW Adds a display mode dropdown at the top of the interactive settings editor to reduce complexity
- NEW Adds a tree layout option to tags in the GitLens explorer — closes #358
- NEW Adds Show GitLens Explorer command (
gitlens.showGitExplorer) — shows/expands the GitLens explorer
- NEW Adds Show History Explorer command (
gitlens.showHistoryExplorer) — shows/expands the GitLens History explorer
- NEW Adds Show Results Explorer command (
gitlens.showResultsExplorer) — shows/expands the GitLens Results explorer
- IMPROVED Showing results in the GitLens Results explorer now properly shows the explorer first
- IMPROVED Renames Compare Line Revision with Previous command to Compare Commit with Previous for better consistency with other commands
- IMPROVED Renames Compare Line Revision with Working File command to Compare Commit with Working File for better consistency with other commands
- IMPROVED Renames Show Commit File Details command to Show Commit Details for better consistency with other commands
- IMPROVED Reworks GitLens menu contributions and configuration — see menu settings above
- IMPROVED Renames the
- IMPROVED Uses the new Webview API for better interactions and behavior with the interactive settings editor and welcome page
- FIXED Fixes #366 — Running a GitLens command from a keybinding fails
- FIXED Fixes #155 — Navigating file diffs with
- FIXED Fixes #359 — Show changes of an added file in the first commit
- FIXED Fixes #372 — Wrong URL to VSTS work item when using hash work item id in commit
- FIXED Fixes bronze typo thanks to PR #361 by Cory Forsyth (@bantic)
- FIXED Fixes individually typo thanks to PR #364 by Brett Cannon (@brettcannon)
- FIXED Fixes issue where comparing previous revision during a merge/rebase conflict failed to show the correct contents
- FIXED Fixes issue with the current line blame toggle not working when current line blame starts disabled
- FIXED Fixes various issues when not on a branch
- 8.2 APRIL 2018
- NEW Adds new stand-alone GitLens History explorer to visualize the history of the current file — undocked version of the GitLens explorer history view
- NEW Adds richer tooltips to the GitLens and GitLens Results explorers, and richer working tree and upstream status to the GitLens explorer
- NEW Adds an indicator to the GitLens explorer's branch history to mark the synchronization point between the local and remote branch (if available)
- NEW Adds ability to easily switch between relative and absolute dates via the
gitlens.defaultDateStylesettings — closes #312
- NEW Adds annotation format settings (
gitlens.*.format) to the interactive settings editor
- NEW Adds new
gitlens.currentLine.scrollablesetting to specify whether the current line blame annotation can be scrolled into view when it is outside the viewport — closes #149, #290, #265
- NEW Adds
gitlens.statusBar.reduceFlickersetting to the interactive settings editor
- FIXED Fixes #314 — Toggle line annotation doesn't work properly
- FIXED Fixes #310 — "via Terminal" commands need quoting around work directory
- FIXED Fixes issues with the active repository in the GitLens explorer failed to update properly
- FIXED Fixes issues with Open File, Open Revision, and Show File History commands and images and other binary files
- FIXED Fixes issues preventing nodes in the GitLens explorer from expanding properly in certain cases
- FIXED Fixes issues when refreshing nodes in the GitLens Results explorer
- 8.1 MARCH 2018
- NEW Adds automatic issue linking to Bitbucket, GitHub, GitLab, and Visual Studio Team Services for commit messages in hovers
- NEW Adds support to toggle annotations for each file individually or for all files at once — closes #289
- NEW Adds icons to remotes in the GitLens explorer based on the remote service provider
- NEW Adds multi-cursor support to current line annotations — closes #291
- IMPROVED Renames Compare Selected Ancestor with Working Tree command to Compare Ancestry with Working Tree and removes the need to select a branch first, since all compares are performed with the working tree — closes #279
- FIXED Fixes #294 — Keyboard shortcuts will now default to chorded to avoid conflicts. Only affects new installs or if you remove the gitlens.keymap setting
- 8.0 FEBRUARY 2018
- NEWBrand new welcome experience
- NEWBrand new interactive settings editor — GitLens is easier than ever to customize to suit your needs
- NEWAdds a tree layout option to branches in the GitLens explorer — thanks to Yukai Huang (@Yukaii)!
- IMPROVEDReworked settings — clearer, simpler settings
GitLens simply helps you understand code better. Quickly glimpse into whom, why, and when a line or code block was changed. Jump back through history to gain further insights as to how and why the code evolved. Explore the history and evolution of a codebase. Dive right in and see how GitLens can help!
Here are just some of the features that GitLens provides,
- a GitLens explorer to navigate and explore repositories
- a GitLens History explorer to navigate and explore file histories
- an on-demand GitLens Results explorer to navigate and explore commits, histories, and searches, or visualize comparisons between branches, tags, commits, and more
- authorship code lens showing the most recent commit and # of authors to the top of files and/or on code blocks
- an unobtrusive current line blame annotation at the end of the line
- on-demand gutter blame annotations, including a heatmap, for the whole file
- detailed blame information accessible via hovers
- on-demand recent changes annotations to highlight lines changed by the most recent commit
- a status bar blame annotation showing author and date for the current line
- commit search — by message, author, filename, commit id, or code changes
- many powerful commands for exploring commits and histories, comparing and navigating revisions, stash access, repository status, etc
- and so much more
GitLens is powerful, feature rich, and highly customizable to meet your specific needs — find code lens intrusive or the current line blame annotation distracting — no problem, it is quick and easy to turn them off or change how they behave via the built-in settings editor, an interactive editor covering many of GitLens' powerful settings. While for more advanced customizations, refer to the GitLens settings docs and edit your user settings.
GitLens started back in mid-2016, when I fell in love with Visual Studio Code and wanted to play with the newly released extension support. It was also a good excuse for me to improve my budding TypeScript skills. It all started with a simple question — could I add code lens showing Git insights to any document.
Since then, GitLens has quickly grown from a prototype to a full-fledged product with a mission of its own — make developers lives easier. GitLens strives to simply help you understand code better.
Read the reviews to see what people are saying about GitLens. I am truly humbled by the love and support of the Visual Studio Code community.